IE won't see <SELECT> fields

G

Guest

I can't get IE 6 to read the values in my <SELECT..> data entry fields.
Netscape 7 and Opera see them, and IE will pass the values to the
database, but the javascript validation script gets a null value from
the selection fields. Text inputs work just fine.

Below is the form and validation script (I've added "...." to indicate
additional fields in the same format in both the form and the
validation)

Here's the form:
<FORM NAME="LibrarySurvey" ACTION="FMPro" METHOD="Post" onSubmit="return
Validate(this)" >
<INPUT TYPE="hidden" NAME="-db" VALUE="LibrarySurvey.fp5">
<INPUT TYPE="hidden" NAME="-lay" VALUE="Master">
<INPUT TYPE="hidden" NAME="-format" VALUE="LS_ok.htm">

<br>
<TABLE border = "0" width = "75%">
<TH COLSPAN= "3" ALIGN="center" BGCOLOR="#CC99FF"><STRONG>LIBRARY SURVEY
</STRONG></TH>

<COLGROUP span = "3" RULES = "rows">
<COL span "1" width = 48% VALIGN = top ></COL>
<COL span "2" align = "right" width = 2% ></COL>
<COL span "3" width = 50% VALIGN = top ></COL>
</COLGROUP>
<TR>
<TD>Librarian Name </TD>
<TD></TD>
<TD>
<INPUT TYPE="hidden" NAME="LibrarianName" VALUE= "">
</TD>
</TR>
<TR>
<TD>Building </TD>
<TD></TD>
<TD>
<INPUT TYPE="hidden" NAME="SchoolName" VALUE="">
</TD>
</TR>
<TR>
<TD>Date of Request</TD>
<TD></TD>
<TD>
<INPUT TYPE="text" NAME="RequestDate" VALUE="">
</TD>
</TR>
<TR>
<TD>Time of Request</TD>
<TD></TD>
<TD>
<SELECT NAME="RequestTime">
<OPTION></OPTION>
<OPTION>7am</OPTION>
<OPTION>8am</OPTION>
<OPTION>9am</OPTION>
<OPTION>10am</OPTION>
<OPTION>11am</OPTION>
<OPTION>12pm</OPTION>
<OPTION>1pm</OPTION>
<OPTION>2pm</OPTION>
<OPTION>3pm</OPTION>
<OPTION>4pm</OPTION>
<OPTION>5pm</OPTION>
<OPTION>6pm</OPTION>
<OPTION>7pm</OPTION>
<OPTION>other</OPTION>
</SELECT>

</TD>
</TR>
<TR>
<TD>Date of Service
</TD>
<TD></TD>
<TD>
<INPUT TYPE="text" NAME="ServiceDate" VALUE="" >
</TD>
</TR>
<TR>
<TD>Time of Service </TD>
<TD></TD>
<TD>
<SELECT NAME="ServiceTime">
<OPTION></OPTION>
<OPTION>7am</OPTION>
<OPTION>8am</OPTION>
<OPTION>9am</OPTION>
<OPTION>10am</OPTION>
<OPTION>11am</OPTION>
<OPTION>12pm</OPTION>
<OPTION>1pm</OPTION>
<OPTION>2pm</OPTION>
<OPTION>3pm</OPTION>
<OPTION>4pm</OPTION>
<OPTION>5pm</OPTION>
<OPTION>6pm</OPTION>
<OPTION>7pm</OPTION>
<OPTION>other</OPTION>
</SELECT>

</TD>
</TR>
<TR>
<TD> Your total time on the problem </TD>
<TD></TD>
<TD>
<SELECT Name="ServiceDuration">
<OPTION></OPTION>
<OPTION>1-5 minutes </OPTION>
<OPTION>6-15 minutes </OPTION>
<OPTION>16-30 minutes </OPTION>
<OPTION>31-60 minutes </OPTION>
<OPTION>Over 60 minutes </OPTION>
</SELECT>
</TD>
</TR>

.....

</TABLE>

</FORM>

________________________________________________________________
________________________________________________________________

And the validation function (in the header):

<SCRIPT LANGUAGE = "Javascript 1.3" type="text/javascript">
function Validate(f)
{

var mdy = new Date;
alert (f.RequestTime.value)
alert (f.RequestDate.value)
if (f.RequestDate.value=="")
{
alert("Date of Request is Required")
f.RequestDate.focus();return false
}


if (f.RequestTime.value=="")
{
alert("Please enter the time the request was made." )
f.RequestTime.focus();return false
}
.....

}
</SCRIPT>
 
M

Mick White

I can't get IE 6 to read the values in my <SELECT..> data entry fields.
Netscape 7 and Opera see them, and IE will pass the values to the
database, but the javascript validation script gets a null value from
the selection fields. Text inputs work just fine.
[snip]


<SELECT NAME="RequestTime">
<OPTION></OPTION>
<OPTION>7am</OPTION>
<OPTION>8am</OPTION>
<OPTION>9am</OPTION>
<OPTION>10am</OPTION>
<OPTION>11am</OPTION>
<OPTION>12pm</OPTION>
<OPTION>1pm</OPTION>
<OPTION>2pm</OPTION>
<OPTION>3pm</OPTION>
<OPTION>4pm</OPTION>
<OPTION>5pm</OPTION>
<OPTION>6pm</OPTION>
<OPTION>7pm</OPTION>
<OPTION>other</OPTION>
</SELECT>

The select object options don't have any values.

<OPTION>7am</OPTION> // No value

<SCRIPT LANGUAGE = "Javascript 1.3" type="text/javascript">

function Validate(f)
{

var mdy = new Date;
alert (f.RequestTime.value)

alert(f.requestDate.options[f.RequestDate.options.selectedIndex].text)

This is a cross browser and unambiguous way to reference the text(not
the value)that the user has chosen.
alert (f.RequestDate.value)
if (f.RequestDate.value=="")

if (f.RequestDate.value=="") //always false in your case, try:

if(f.RequestDate.selectedIndex<1)

[snip]

Mick
 
M

Michael Winter

On Mon, 24 Jan 2005 19:15:49 GMT, Mick White

[snip]
The select object options don't have any values.

<OPTION>7am</OPTION> // No value

That is incorrect. If a user agent follows the prose of the HTML
specification, it will use the content of the element as the initial value:

"Note that where the value attribute is set, it determines the
control's initial value, otherwise it's the element's contents."

Other browsers do this. IE doesn't.

[snip]

Mike
 
G

Guest

Thanks Mick, Michael..

Mick's solution made the problem go away. -tc

On Mon, 24 Jan 2005 19:15:49 GMT, Mick White

[snip]
The select object options don't have any values.

<OPTION>7am</OPTION> // No value

That is incorrect. If a user agent follows the prose of the HTML
specification, it will use the content of the element as the initial value:

"Note that where the value attribute is set, it determines the
control's initial value, otherwise it's the element's contents."

Other browsers do this. IE doesn't.

[snip]

Mike
 
M

Mick White

Michael said:
That is incorrect. If a user agent follows the prose of the HTML
specification, it will use the content of the element as the initial value:

"Note that where the value attribute is set, it determines the
control's initial value, otherwise it's the element's contents."

Other browsers do this. IE doesn't.

http://www.w3schools.com/tags/tag_option.asp

"Note: The <option> tag can be used without any attributes, but you
usually need the value attribute, which indicates what is sent to the
server."

Ambiguous, perhaps?
Mick
 
M

Mick White

Mick said:
http://www.w3schools.com/tags/tag_option.asp

"Note: The <option> tag can be used without any attributes,
but you usually need the value attribute, which indicates what
is sent to the server."


"Note: The <option> tag can be used without any attributes, but you
usually need the value attribute, which indicates what is sent to the
server."

Surry about the formatting.
Mick
 
M

Michael Winter

On Mon, 24 Jan 2005 22:11:04 GMT, Mick White

[snip]

What does it matter? W3Schools have no authority and the specification is
clear (see
<URL:http://www.w3.org/TR/html4/interact/forms.html#adef-value-OPTION>).

However, if you're working with IE and you need to access the value
programmatically[1], you will always have to explicitly provide it in the
mark-up.

Mike


[1] IE does seems to conform to specification when submitting to the
server, though.
 
G

Grant Wagner

Michael Winter said:
On Mon, 24 Jan 2005 22:11:04 GMT, Mick White

[snip]

What does it matter? W3Schools have no authority and the specification
is clear (see
<URL:http://www.w3.org/TR/html4/interact/forms.html#adef-value-OPTION>).

However, if you're working with IE and you need to access the value
programmatically[1], you will always have to explicitly provide it in
the mark-up.

Mike


[1] IE does seems to conform to specification when submitting to the
server, though.

Or if you are concerned about the weight of "doubling up" the <option>
text and value attributes, you could use a function like the following
as part of the onload event of your page:

function setOptionValues()
{
var ii = document.forms.length;
while (ii-- > 0)
{
var f = document.forms[ii];
if (!f || !(f = f.elements))
{
continue;
}

var jj = +f.length || 0;
while (jj-- > 0)
{
var sel = f[jj];
if (!sel || !/^select/.test(sel.type) || !(sel =
sel.options))
{
continue;
}

var kk = +sel.length || 0;
while (kk-- > 0)
{
if ("" == sel[kk].value)
{
sel[kk].value = sel[kk].text;
}
}
}
}
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,070
Latest member
BiogenixGummies

Latest Threads

Top