By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
448,650 Members | 1,844 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 448,650 IT Pros & Developers. It's quick & easy.

IE won't see <SELECT> fields

P: n/a
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>
Jul 23 '05 #1
Share this Question
Share on Google+
7 Replies


P: n/a
ta****@cornell.edu wrote:
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

<OPTION value="7am">7am</OPTION> // This has a value


<SCRIPT LANGUAGE = "Javascript 1.3" type="text/javascript">
<SCRIPT 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
Jul 23 '05 #2

P: n/a
On Mon, 24 Jan 2005 19:15:49 GMT, Mick White
<mw***********@rochester.rr.com> wrote:

[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

--
Michael Winter
Replace ".invalid" with ".uk" to reply by e-mail.
Jul 23 '05 #3

P: n/a
Thanks Mick, Michael..

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

In article <opsk4gpja5x13kvk@atlantis>, M.******@blueyonder.co.invalid
says...
On Mon, 24 Jan 2005 19:15:49 GMT, Mick White
<mw***********@rochester.rr.com> wrote:

[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

Jul 23 '05 #4

P: n/a
Michael Winter wrote:

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
Jul 23 '05 #5

P: n/a
Mick White wrote:

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
Jul 23 '05 #6

P: n/a
On Mon, 24 Jan 2005 22:11:04 GMT, Mick White
<mw***********@rochester.rr.com> wrote:

[snip]
http://www.w3schools.com/tags/tag_option.asp
[snip]
Ambiguous, perhaps?


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.

--
Michael Winter
Replace ".invalid" with ".uk" to reply by e-mail.
Jul 23 '05 #7

P: n/a
"Michael Winter" <M.******@blueyonder.co.invalid> wrote in message
news:opsk4pu8k4x13kvk@atlantis...
On Mon, 24 Jan 2005 22:11:04 GMT, Mick White
<mw***********@rochester.rr.com> wrote:

[snip]
http://www.w3schools.com/tags/tag_option.asp


[snip]
Ambiguous, perhaps?


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;
}
}
}
}
}

--
Grant Wagner <gw*****@agricoreunited.com>
comp.lang.javascript FAQ - http://jibbering.com/faq
Jul 23 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.