IE and Netscape Difference: ASP/JavaScript Problem

J

JJ_377

Why won't Netscape do the intended in the following? IE is able to
render this page as intended. It is is a "self-posting" ASP form with a
JavaScript validation function: if the form fails the JavaScript
validation function, then the form should not post and an alert should
be issued as indicated below.

The *first* alert in the Validate function works in NS, but the rest of
the code does not and therefore I wonder about the way I am referencing
the controls...tried to experiment with this, as can be seen in the
rem'd out code. Tried to research in my books...

Thanks for any and all! Jules

---------------------------------------------------------------------------------------------------------------
<%Option Explicit%>

<%
'This is a self-posting form: the same form is used for both
'the request and response objects

If not IsEmpty(request.Form("txtFirstName")) and _
Not IsEmpty(Request.Form("txtLastName")) then
'the form has been filled out and a brief thank you is sent
%>
<html>
<head>
<title>Thank You</title>

</head>

<body>
Thank you
<br><%=Request.Form("txtFirstName")%>&nbsp<%=Request.Form("txtLastName")%>
for your information.
Have a nice day!
</body>
</html>

<%Else%>
<!--Form has not been filled out, so provide it!-->

<html>
<head>
<script language="javascript">

function trim(strField){
alert("trim");
return strField.replace(/^\s+/,'').replace(/\s+$/,'')
}

function validate()
{
alert("validate");

//if(document.all.txtFirstName.value == "" ||
document.all.txtLastName.value == "")
if(trim(document.forms("frmInfo").elements("txtFirstName").value) ==
"" || trim(document.forms("frmInfo").elements("txtLastName").value) ==
"")
//document.swOrder.elements[0].value
//if(trim(document.frmInfo.elements[0].value == "" ||
trim(document.frmInfo.elements[1].value) == "")
{
document.frmInfo.reset();
alert("Please enter both first and last names.");
return false;
}
document.frmInfo.submit();
return true;
}
</script>
<title>Thank You</title>
</head>
<body>
Please fill out this form:
<form name="frmInfo" action="AllControls.asp" method="post">

First Name: <input type="text" name="txtFirstName"><br>
Last Name: <input type="text" name="txtLastName"><br>
<input type="Button" value="Submit User Info" onclick="validate()">
<input type="reset">



</form>
</body>
</html>
<%End if %>
 
R

Richard Cornford

The *first* alert in the Validate function works in NS,
but the rest of the code does not and therefore I wonder
about the way I am referencing the controls...
<snip>

Why wonder, Netscape/Gecko browsers provide very explicit error reports
in their javascript console?

<script language="javascript">

The language attribute is deprecated and the type attribute is required
in valid HTML 4. So:-

<script type="text/javascript">

document.all.txtLastName.value == "")

Only the very latest Mozilla/Gecko browsers support - document.all - so
that does not include any Netscape releases.
if(trim(document.forms("frmInfo").

The - document.forms - collection is (W3C) specified as an object not a
function. As such its members should be referenced using bracket
notation.
elements("txtFirstName").value) ==
<snip>

The - elements - collection of form elements is (W3C) specified as an
object not a function. As such its members should be referenced using
bracket notation.

Netscape browsers will not have made it past those two errors.

Richard.
 
R

RobG

Richard said:
(e-mail address removed) wrote:
Only the very latest Mozilla/Gecko browsers support - document.all - so
that does not include any Netscape releases.

IMO, you should say "have limited support for". An informative
discussion on Mozilla/Geko support for document.all is here:

<URL:https://bugzilla.mozilla.org/show_bug.cgi?id=248549>

Mozilla/Geko's support for document.all seems limited to the
ability to create a reference to an element and that's it.
 
J

JJ_377

I tried the JavaScript Console before posting my initial question and
it returned no messages at all and so I posted my inquiry here. I tried
to change the <script> tag and the script still fails...if the control
references are incorrect, how do I correct them? I tried various ways
of using "bracket notation" as well before posting my first inquiry
(rem'd out code in original posting I believe) and did not get the
script to work. If this line is wrong, how is it to be changed to to
bracket notation so that it works in NS?
if(trim(document.forms("frmInfo").elements("txtFirstName").value) ==
"" || trim(document.forms("frmInfo").elements("txtLastName").value) ==
"")
?
Thank you.
 
J

JJ_377

Got it!
if(trim(document.frmInfo.txtFirstName.value) == "" ||
trim(document.frmInfo.txtLastName.value) == "")

This works in Netscape and IE.
 

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

Similar Threads


Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top