PRB: Value of a Checkbox Interpreted Differently (186422)
The information in this article applies to:
- Microsoft Internet Explorer (Programming) 3.02
- Microsoft Internet Explorer (Programming) 4.01
This article was previously published under Q186422 SYMPTOMS
The following VBScript code produces different results when viewed by
Internet Explorer 3.02 and Internet Explorer 4.01 or later (the full text of the
HTML and VBScript code will be detailed in the next section):
<SCRIPT LANGUAGE="VBScript">
<!--
sub submit_onclick
if document.Info.sound.checked = True then msgbox "The checkbox is
checked!"
end sub
-->
</SCRIPT>
Internet Explorer 3.02 does not interpret the value of the checkbox
correctly. As a result, it does not execute the action in the THEN section
of the IF/THEN statement.
CAUSE
Following is a full HTML and VBScript example:
Sample Code
<HTML>
<HEAD>
<TITLE>Checkbox test </TITLE>
</HEAD>
<BODY>
<FORM NAME="Info">
<center>
My test checkbox
<input name="sound" type="checkbox">
<INPUT value="Test the checkbox value" TYPE="button" NAME="CheckIt"
ALIGN=left>
<SCRIPT LANGUAGE="VBScript">
<!--
sub CheckIt_onclick
if document.Info.sound.checked = true then msgbox "The checkbox is checked!"
end sub
-->
</SCRIPT>
</FORM>
</BODY>
</HTML>
The VBScript Language Reference defines "True" as the value -1. Internet Explorer 3.02 incorrectly interprets "True" as 1. For example:
if document.Info.sound.checked = -1 then msgbox "The checkbox is clicked!"
if document.Info.sound.checked = 1 then msgbox "The checkbox is clicked!"
The first line displays the message box correctly when you view it with
Internet Explorer 4.01 or later, but not with Internet Explorer 3.02. Conversely,
the second line displays the message box correctly when you use Internet
Explorer 3.02, but not Internet Explorer 4.01 or later.
RESOLUTION
You can display the message box correctly in both versions of Internet
Explorer by removing the explicit comparison to a value (True, 1 or -1) and
allowing Internet Explorer to implicitly evaluate the statement. For
example:
if document.Info.sound.checked then msgbox "The checkbox is checked!"
By doing this, it is implied that document.Info.sound.checked is evaluated
to True or False. VBScript makes the comparison correctly.
Modification Type: | Major | Last Reviewed: | 5/9/1999 |
---|
Keywords: | kbprb KB186422 |
---|
|