RhythmAddict112
Programmer
Hey everyone whats up...I have a page that has been working fine ever since I can remember...The full source is below.....I get a error stating:
"'line 11 elements[...].value' is null or not an object"
Do you get the same msg?? How can i resolve this? I'm kind of baffled since its been workin for months!
[code
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="Style/style.css">
<SCRIPT>
function validateForm( frm )
{
for ( var row = 1; row <= 51; ++row )
{
var kits = parseInt( frm.elements["kits"+row].value );
if ( ! isNaN(kits) && kits > 0 )
{
// kits in this row is a number more than zero...
// so check for all other fields...
var name = frm.elements["row"+row+"col1"].value;
if ( name.length < 1 ) // choose a minimum length
{
alert("Please Provide company name in row " + row);
return false;
}
var cust = frm.elements["cust_name"+row].value;
if ( cust.length < 3 ) //min length of 3
{
alert("Please provide customer name in row " + row);
return false;
}
var address = frm.elements["row"+row+"col2"].value;
if ( address.length < 3 )
{
alert("Please provide address in row "+row)
return false;
}
var city = frm.elements["row"+row+"col3"].value;
if ( city.length < 3 )
{
alert("Please enter valid value for city field in row "+row)
return false;
}
var stat = frm.elements["row"+row+"col4"].value;
if ( stat.length < 2 )
{
alert("Please correct state field in row "+row)
return false;
}
var zip = frm.elements["row"+row+"col5"].value;
if ( zip.length < 5 )
{
alert("Please correct zip code on row"+row)
return false;
}
var mam = frm.elements["row"+row+"col6"].value;
if ( mam.length < 1 )
{
alert("Please provide MAM field on row "+row)
return false;
}
} // end of "if kits for this row is > 0"
} // end of loop on all rows
// if no errors, then:
return true;
} // end of function
</script>
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Nannette Thacker -->
<!-- -->
<!-- Begin
function checkNumeric(objName,minval, maxval,comma,period,hyphen)
{
var numberfield = objName;
if (chkNumeric(objName,minval,maxval,comma,period,hyphen) == false)
{
numberfield.select();
numberfield.focus();
return false;
}
else
{
return true;
}
}
function chkNumeric(objName,minval,maxval,comma,period,hyphen)
{
// only allow 0-9 be entered, plus any values passed
// (can be in any order, and don't have to be comma, period, or hyphen)
// if all numbers allow commas, periods, hyphens or whatever,
// just hard code it here and take out the passed parameters
var checkOK = "0123456789" + comma + period + hyphen;
var checkStr = objName;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.value.length; i++)
{
ch = checkStr.value.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{
alertsay = "Please enter only these values \""
alertsay = alertsay + checkOK + "\" in the \"" + checkStr.name + "\" field."
alert(alertsay);
return (false);
}
// set the minimum and maximum
var chkVal = allNum;
var prsVal = parseInt(allNum);
if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval))
{
alertsay = "Please enter a value greater than or "
alertsay = alertsay + "equal to \"" + minval + "\" and less than or "
alertsay = alertsay + "equal to \"" + maxval + "\" in the \"" + checkStr.name + "\" field."
alert(alertsay);
return (false);
}
}
// End -->
</script>
<script language="JavaScript">
function copyrow(copyToRow,columnCount) {
for (i=1; i<=columnCount ; i++) {
document.myform.elements['row' + copyToRow + 'col' + i].value = document.myform.elements['row' +
(copyToRow-1) + 'col' + i].value;
}
}
</script>
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Ryan A. Somma (ryan@waygate.com) -->
<!-- Web Site: -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! -->
<!-- Begin
function stringFilter (input) {
s = input.value;
filteredValues = "';`";
var i;
var returnString = "";
for (i = 0; i < s.length; i++) { // Search through string and append to unfiltered values to returnString.
var c = s.charAt(i);
if (filteredValues.indexOf(c) == -1) returnString += c;
}
input.value = returnString;
}
// End -->
</script>
</HEAD>
<body LEFTMARGIN="5" rightmargin="5" TOPMARGIN="5" marginwidth="0" marginheight="0">
<form name="myform" method="post" action="write.asp" onSubmit="return validateForm(this);" >
<table border"4" bordercolor="#000000" align="center" width="90%">
<tr>
<td>
</td>
<td align="right">
<input name="Submit" type="submit" value="Save" class="text" >
</td>
</tr>
</table>
<table border=1 width='90%' align='center' class='norm'><tr><td align='center' class=shadeMed>No.</td><td
align='center' class=shadeMed># of Kits</td><td align='center' class=shadeMed>Region</td><td align='center'
class=shadeMed>Company Name</td><td align='center' class=shadeMed>Customer Name</td><td align='center'
class=shadeMed>Title</td><td align='center' class=shadeMed>Address</td><td align='center'
class=shadeMed>City</td><td align='center' class=shadeMed>State</td><td align='center'
class=shadeMed>Zip</td><td align='center' class=shadeMed>MAM</td><td align='center'
class=shadeMed>Duplicate</td></tr>
<tr>
<td class="ShadeMed" align="center">
1
</td>
<td class="ShadeMed" align="center">
<!-- <input type="button" value="Copy" onclick="copyrow(2,5)">-->
<input name="kits1" type="text" value="0" size="1" maxlength="2" class="text"
onBlur="checkNumeric(this,0,99,'','','');">
</td>
<td class="ShadeMed" align="center">
<input name="region1" type="text" value=NYM size="2" maxlength="2" class="text" disabled>
<input name="region1" type="hidden" value=NYM>
</td>
<td class="ShadeMed" align="center">
<input name="row1col1" type="text" value="" size="15" maxlength="45" class="text"
onBlur="stringFilter(row1col1);">
</td>
<td class="ShadeMed" align="center">
<input name="cust_name1" type="text" value="" size="10" maxlength="45" class="text"
onBlur="stringFilter(cust_name1);">
</td>
<td class="ShadeMed" align="center">
<input name="ttl1" type="text" value="" size="10" maxlength="45" class="text"
onBlur="stringFilter(ttl1);">
</td>
<td class="ShadeMed" align="center">
<input name="row1col2" type="text" value="" size="20" maxlength="65" class="text"
onBlur="stringFilter(row1col2);">
</td>
<td class="ShadeMed" align="center">
<input name="row1col3" type="text" value="" size="10" maxlength="30" class="text"
onBlur="stringFilter(row1col3);">
</td>
<td class="ShadeMed" align="center">
<!--state-->
<input name="row1col4" type="text" value="" size="2" maxlength="2" class="text"
onBlur="stringFilter(row1col4);">
</td>
<td class="ShadeMed" align="center">
<input name="row1col5" type="text" value="" size="5" maxlength="5" class="text"
onBlur="checkNumeric(this,0,99999,'','','');">
</td>
<td class="ShadeMed" align="center">
<input name="row1col6" type="text" value="" size="20" maxlength="30" class="text"
onBlur="stringFilter(row1col6);">
</td>
<td class="ShadeMed" align="center">
<input type="button" value="Copy Row" onclick="copyrow(2,6)" class="text"/>
<input type="hidden" name="batchdate1" value=17-JAN-2005 />
</td>
</tr>
<tr>
<td class="ShadeLite" align="center">
2
</td>
<td class="ShadeLite" align="center">
<!--<input type="button" value="Copy" onclick="copyrow(3,5)">-->
<input name="kits2" type="text" value="0" size="1" maxlength="2" class="text"
onBlur="checkNumeric(this,0,99,'','','');">
</td>
<td class="ShadeLite" align="center">
<input name="region2" type="text" value=NYM size="2" maxlength="2" class="text" disabled>
<input name="region2" type="hidden" value=NYM>
</td>
<td class="ShadeLite" align="center">
<input name="row2col1" type="text" value="" size="15" maxlength="35" class="text"
onBlur="stringFilter(row2col1);">
</td>
<td class="ShadeLite" align="center">
<input name="cust_name2" type="text" value="" size="10" maxlength="25" class="text"
onBlur="stringFilter(cust_name2);">
</td>
<td class="ShadeLite" align="center">
<input name="ttl2" type="text" value="" size="10" maxlength="25" class="text"
onBlur="stringFilter(ttl2);">
</td>
<td class="ShadeLite" align="center">
<input name="row2col2" type="text" value="" size="20" maxlength="75" class="text"
onBlur="stringFilter(row2col2);">
</td>
<td class="ShadeLite" align="center">
<input name="row2col3" type="text" value="" size="10" maxlength="30" class="text"
onBlur="stringFilter(row2col3);">
</td>
<td class="ShadeLite" align="center">
<!--state-->
<input name="row2col4" type="text" value="" size="2" maxlength="2" class="text"
onBlur="stringFilter(row2col4);">
</td>
<td class="ShadeLite" align="center">
<input name="row2col5" type="text" value="" size="5" maxlength="5" class="text"
onBlur="checkNumeric(this,0,99999,'','','');">
</td>
<td class="ShadeLite" align="center">
<input name="row2col6" type="text" value="" size="20" maxlength="30" class="text"
onBlur="stringFilter(row2col6);">
</td>
<td class="ShadeMed" align="center">
<input type="button" value="Copy Row" onclick="copyrow(3,6)" class="text2"/>
<input type="hidden" name="batchdate2" value=17-JAN-2005 />
</td>
</tr>
<p align="right">
<h1>Package Submission - <font size="-1">The current batch is for January</h1></font>
<P style="MARGIN-TOP: 0px">
<hr width="40%" align="LEFT">
<p style="MARGIN-TOP: 0px" align="right">
</form>
</body>
</html>
[/code]
Use your resources, you're on the internet!
"'line 11 elements[...].value' is null or not an object"
Do you get the same msg?? How can i resolve this? I'm kind of baffled since its been workin for months!
[code
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="Style/style.css">
<SCRIPT>
function validateForm( frm )
{
for ( var row = 1; row <= 51; ++row )
{
var kits = parseInt( frm.elements["kits"+row].value );
if ( ! isNaN(kits) && kits > 0 )
{
// kits in this row is a number more than zero...
// so check for all other fields...
var name = frm.elements["row"+row+"col1"].value;
if ( name.length < 1 ) // choose a minimum length
{
alert("Please Provide company name in row " + row);
return false;
}
var cust = frm.elements["cust_name"+row].value;
if ( cust.length < 3 ) //min length of 3
{
alert("Please provide customer name in row " + row);
return false;
}
var address = frm.elements["row"+row+"col2"].value;
if ( address.length < 3 )
{
alert("Please provide address in row "+row)
return false;
}
var city = frm.elements["row"+row+"col3"].value;
if ( city.length < 3 )
{
alert("Please enter valid value for city field in row "+row)
return false;
}
var stat = frm.elements["row"+row+"col4"].value;
if ( stat.length < 2 )
{
alert("Please correct state field in row "+row)
return false;
}
var zip = frm.elements["row"+row+"col5"].value;
if ( zip.length < 5 )
{
alert("Please correct zip code on row"+row)
return false;
}
var mam = frm.elements["row"+row+"col6"].value;
if ( mam.length < 1 )
{
alert("Please provide MAM field on row "+row)
return false;
}
} // end of "if kits for this row is > 0"
} // end of loop on all rows
// if no errors, then:
return true;
} // end of function
</script>
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Nannette Thacker -->
<!-- -->
<!-- Begin
function checkNumeric(objName,minval, maxval,comma,period,hyphen)
{
var numberfield = objName;
if (chkNumeric(objName,minval,maxval,comma,period,hyphen) == false)
{
numberfield.select();
numberfield.focus();
return false;
}
else
{
return true;
}
}
function chkNumeric(objName,minval,maxval,comma,period,hyphen)
{
// only allow 0-9 be entered, plus any values passed
// (can be in any order, and don't have to be comma, period, or hyphen)
// if all numbers allow commas, periods, hyphens or whatever,
// just hard code it here and take out the passed parameters
var checkOK = "0123456789" + comma + period + hyphen;
var checkStr = objName;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.value.length; i++)
{
ch = checkStr.value.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{
alertsay = "Please enter only these values \""
alertsay = alertsay + checkOK + "\" in the \"" + checkStr.name + "\" field."
alert(alertsay);
return (false);
}
// set the minimum and maximum
var chkVal = allNum;
var prsVal = parseInt(allNum);
if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval))
{
alertsay = "Please enter a value greater than or "
alertsay = alertsay + "equal to \"" + minval + "\" and less than or "
alertsay = alertsay + "equal to \"" + maxval + "\" in the \"" + checkStr.name + "\" field."
alert(alertsay);
return (false);
}
}
// End -->
</script>
<script language="JavaScript">
function copyrow(copyToRow,columnCount) {
for (i=1; i<=columnCount ; i++) {
document.myform.elements['row' + copyToRow + 'col' + i].value = document.myform.elements['row' +
(copyToRow-1) + 'col' + i].value;
}
}
</script>
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Ryan A. Somma (ryan@waygate.com) -->
<!-- Web Site: -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! -->
<!-- Begin
function stringFilter (input) {
s = input.value;
filteredValues = "';`";
var i;
var returnString = "";
for (i = 0; i < s.length; i++) { // Search through string and append to unfiltered values to returnString.
var c = s.charAt(i);
if (filteredValues.indexOf(c) == -1) returnString += c;
}
input.value = returnString;
}
// End -->
</script>
</HEAD>
<body LEFTMARGIN="5" rightmargin="5" TOPMARGIN="5" marginwidth="0" marginheight="0">
<form name="myform" method="post" action="write.asp" onSubmit="return validateForm(this);" >
<table border"4" bordercolor="#000000" align="center" width="90%">
<tr>
<td>
</td>
<td align="right">
<input name="Submit" type="submit" value="Save" class="text" >
</td>
</tr>
</table>
<table border=1 width='90%' align='center' class='norm'><tr><td align='center' class=shadeMed>No.</td><td
align='center' class=shadeMed># of Kits</td><td align='center' class=shadeMed>Region</td><td align='center'
class=shadeMed>Company Name</td><td align='center' class=shadeMed>Customer Name</td><td align='center'
class=shadeMed>Title</td><td align='center' class=shadeMed>Address</td><td align='center'
class=shadeMed>City</td><td align='center' class=shadeMed>State</td><td align='center'
class=shadeMed>Zip</td><td align='center' class=shadeMed>MAM</td><td align='center'
class=shadeMed>Duplicate</td></tr>
<tr>
<td class="ShadeMed" align="center">
1
</td>
<td class="ShadeMed" align="center">
<!-- <input type="button" value="Copy" onclick="copyrow(2,5)">-->
<input name="kits1" type="text" value="0" size="1" maxlength="2" class="text"
onBlur="checkNumeric(this,0,99,'','','');">
</td>
<td class="ShadeMed" align="center">
<input name="region1" type="text" value=NYM size="2" maxlength="2" class="text" disabled>
<input name="region1" type="hidden" value=NYM>
</td>
<td class="ShadeMed" align="center">
<input name="row1col1" type="text" value="" size="15" maxlength="45" class="text"
onBlur="stringFilter(row1col1);">
</td>
<td class="ShadeMed" align="center">
<input name="cust_name1" type="text" value="" size="10" maxlength="45" class="text"
onBlur="stringFilter(cust_name1);">
</td>
<td class="ShadeMed" align="center">
<input name="ttl1" type="text" value="" size="10" maxlength="45" class="text"
onBlur="stringFilter(ttl1);">
</td>
<td class="ShadeMed" align="center">
<input name="row1col2" type="text" value="" size="20" maxlength="65" class="text"
onBlur="stringFilter(row1col2);">
</td>
<td class="ShadeMed" align="center">
<input name="row1col3" type="text" value="" size="10" maxlength="30" class="text"
onBlur="stringFilter(row1col3);">
</td>
<td class="ShadeMed" align="center">
<!--state-->
<input name="row1col4" type="text" value="" size="2" maxlength="2" class="text"
onBlur="stringFilter(row1col4);">
</td>
<td class="ShadeMed" align="center">
<input name="row1col5" type="text" value="" size="5" maxlength="5" class="text"
onBlur="checkNumeric(this,0,99999,'','','');">
</td>
<td class="ShadeMed" align="center">
<input name="row1col6" type="text" value="" size="20" maxlength="30" class="text"
onBlur="stringFilter(row1col6);">
</td>
<td class="ShadeMed" align="center">
<input type="button" value="Copy Row" onclick="copyrow(2,6)" class="text"/>
<input type="hidden" name="batchdate1" value=17-JAN-2005 />
</td>
</tr>
<tr>
<td class="ShadeLite" align="center">
2
</td>
<td class="ShadeLite" align="center">
<!--<input type="button" value="Copy" onclick="copyrow(3,5)">-->
<input name="kits2" type="text" value="0" size="1" maxlength="2" class="text"
onBlur="checkNumeric(this,0,99,'','','');">
</td>
<td class="ShadeLite" align="center">
<input name="region2" type="text" value=NYM size="2" maxlength="2" class="text" disabled>
<input name="region2" type="hidden" value=NYM>
</td>
<td class="ShadeLite" align="center">
<input name="row2col1" type="text" value="" size="15" maxlength="35" class="text"
onBlur="stringFilter(row2col1);">
</td>
<td class="ShadeLite" align="center">
<input name="cust_name2" type="text" value="" size="10" maxlength="25" class="text"
onBlur="stringFilter(cust_name2);">
</td>
<td class="ShadeLite" align="center">
<input name="ttl2" type="text" value="" size="10" maxlength="25" class="text"
onBlur="stringFilter(ttl2);">
</td>
<td class="ShadeLite" align="center">
<input name="row2col2" type="text" value="" size="20" maxlength="75" class="text"
onBlur="stringFilter(row2col2);">
</td>
<td class="ShadeLite" align="center">
<input name="row2col3" type="text" value="" size="10" maxlength="30" class="text"
onBlur="stringFilter(row2col3);">
</td>
<td class="ShadeLite" align="center">
<!--state-->
<input name="row2col4" type="text" value="" size="2" maxlength="2" class="text"
onBlur="stringFilter(row2col4);">
</td>
<td class="ShadeLite" align="center">
<input name="row2col5" type="text" value="" size="5" maxlength="5" class="text"
onBlur="checkNumeric(this,0,99999,'','','');">
</td>
<td class="ShadeLite" align="center">
<input name="row2col6" type="text" value="" size="20" maxlength="30" class="text"
onBlur="stringFilter(row2col6);">
</td>
<td class="ShadeMed" align="center">
<input type="button" value="Copy Row" onclick="copyrow(3,6)" class="text2"/>
<input type="hidden" name="batchdate2" value=17-JAN-2005 />
</td>
</tr>
<p align="right">
<h1>Package Submission - <font size="-1">The current batch is for January</h1></font>
<P style="MARGIN-TOP: 0px">
<hr width="40%" align="LEFT">
<p style="MARGIN-TOP: 0px" align="right">
</form>
</body>
</html>
[/code]
Use your resources, you're on the internet!