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

what's wrong with this line?

P: n/a
Hi

I used this for loop in my code, but I keep getting a syntax error on this
line:

for(var i=0;i<tr;i++){
Here's the rest of the function:

function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");
variation = eval('oForm.' + 'variation' + 0 + '.value');
changeNumber = eval('oForm.' + 'changeNumber' + 0 + '.value');
changeDescription = eval('oForm.' + 'changeDescription' + 0 + '.value');
tr = totalRecords.value;
for(var i=0;i<tr;i++){
alert(variation);
if(variation <> 0){
if(changeNumber = ""){
if(changeDescription = ""){
alert("You have not entered a change number for variation" + i);
return false;
}
}
}

}
Jul 20 '05 #1
Share this Question
Share on Google+
8 Replies


P: n/a
Marco Alting wrote:
Hi

I used this for loop in my code, but I keep getting a syntax error on this
line:

for(var i=0;i<tr;i++){
Here's the rest of the function:

function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");
variation = eval('oForm.' + 'variation' + 0 + '.value');
changeNumber = eval('oForm.' + 'changeNumber' + 0 + '.value');
changeDescription = eval('oForm.' + 'changeDescription' + 0 + '.value');
tr = totalRecords.value;
add this line:

alert ("tr="+tr+" and variation ="+variation+" and
changeNumber="+changeNumber+" and changeDescription="+changeDescription);

Do you get what you expected?
for(var i=0;i<tr;i++){
alert(variation);
if(variation <> 0){
if(changeNumber = ""){
if(changeDescription = ""){
alert("You have not entered a change number for variation" + i);
return false;
}
}
}

}


Jul 20 '05 #2

P: n/a

"Marco Alting" <ma***@alting-multimedia.nl> schreef in bericht
news:rf*********************@amsnews03.chello.com. ..
Hi

I used this for loop in my code, but I keep getting a syntax error on this
line:

for(var i=0;i<tr;i++){
Here's the rest of the function:

function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");


That's probably because the 'cbsTotal' object doesn't have a value property,
so tr remains undefined.

BTW, don't use eval when you don't need to.

You can replace the lines:
variation = eval('oForm.' + 'variation' + 0 + '.value');
changeNumber = eval('oForm.' + 'changeNumber' + 0 + '.value');
changeDescription = eval('oForm.' + 'changeDescription' + 0 + '.value');

With:
variation = oForm.elements['variation0'].value;
changeNumber = oForm.elements['changeNumber0'].value;
changeDescription = oForm.elements['changeDescription0'].value;
JW

Jul 20 '05 #3

P: n/a
"Marco Alting" <ma***@alting-multimedia.nl> writes:
I used this for loop in my code, but I keep getting a syntax error on this
line:

for(var i=0;i<tr;i++){
The error is probably not on that line, but in that statement.
It is in the contents of the for statment:
if(variation <> 0){
In Javascript, the not-equal operator is "!=", not "<>" (as in BASICs).
This is a syntax error.
if(changeNumber = ""){
Also, the comparison operator is "==", not "=". This is an assignment,
which changes "changeNumber" to the empty string. The value of an
assignment is the value that is assigned, in this case the empty string.
In an if condition, it is automatically converted to a boolean, and
the empty string converts to false.
if(changeDescription = ""){


ditto.

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #4

P: n/a
"Janwillem Borleffs" <jw*@jwbfoto.demon.nl> writes:

You can replace the lines: [using eval] With:
variation = oForm.elements['variation0'].value;
changeNumber = oForm.elements['changeNumber0'].value;
changeDescription = oForm.elements['changeDescription0'].value;


A very good advise. I would even change "oFrom" to
"document.forms['oForm']". That should work in all browser, current
and future (if they implement the W3C DOM).

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
Art D'HTML: <URL:http://www.infimum.dk/HTML/randomArtSplit.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 20 '05 #5

P: n/a
Thanks for all the advises, I think the error was in the if statements.
Here's the working code:

function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");
tr = totalRecords.value;
for(var i=0;i<tr;i++){
alert(eval('oForm.' + 'variation' + i + '.value'));
if(eval('oForm.' + 'variation' + i + '.value') != '0'){
if(eval('oForm.' + 'changeNumber' + i + '.value') == '0'){
if(eval('oForm.' + 'changeDescription' + 0 + '.value') == '0'){
alert("You have not entered a change number for variation" + i);
return false;
}
}
}
}
}
"Janwillem Borleffs" <jw*@jwbfoto.demon.nl> schreef in bericht
news:3f***********************@news.euronet.nl...

"Marco Alting" <ma***@alting-multimedia.nl> schreef in bericht
news:rf*********************@amsnews03.chello.com. ..
Hi

I used this for loop in my code, but I keep getting a syntax error on this line:

for(var i=0;i<tr;i++){
Here's the rest of the function:

function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");
That's probably because the 'cbsTotal' object doesn't have a value

property, so tr remains undefined.

BTW, don't use eval when you don't need to.

You can replace the lines:
variation = eval('oForm.' + 'variation' + 0 + '.value');
changeNumber = eval('oForm.' + 'changeNumber' + 0 + '.value');
changeDescription = eval('oForm.' + 'changeDescription' + 0 + '.value');
With:
variation = oForm.elements['variation0'].value;
changeNumber = oForm.elements['changeNumber0'].value;
changeDescription = oForm.elements['changeDescription0'].value;
JW

Jul 20 '05 #6

P: n/a
When I comment out the for loop and add the alert, I get what I
expected, but the for loop still gives an error

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 20 '05 #7

P: n/a

"Marco Alting" <ma***@alting-multimedia.nl> skrev i melding
news:rf*********************@amsnews03.chello.com. ..
Hi

I used this for loop in my code, but I keep getting a syntax error on this
line:

for(var i=0;i<tr;i++){
What's "tr". Has it a valid number?
Here's the rest of the function:

function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");
variation = eval('oForm.' + 'variation' + 0 + '.value');
changeNumber = eval('oForm.' + 'changeNumber' + 0 + '.value');
changeDescription = eval('oForm.' + 'changeDescription' + 0 + '.value');
tr = totalRecords.value;
for(var i=0;i<tr;i++){
alert(variation);
if(variation <> 0){
if(changeNumber = ""){
if(changeDescription = ""){
alert("You have not entered a change number for variation" + i);
return false;
}
}
}

}

Jul 20 '05 #8

P: n/a
> function checkForm(oForm){
var totalRecords = document.getElementById("cbsTotal");
variation = eval('oForm.' + 'variation' + 0 + '.value');
changeNumber = eval('oForm.' + 'changeNumber' + 0 + '.value');
changeDescription = eval('oForm.' + 'changeDescription' + 0 + '.value');
tr = totalRecords.value;
for(var i=0;i<tr;i++){
alert(variation);
if(variation <> 0){
if(changeNumber = ""){
if(changeDescription = ""){
alert("You have not entered a change number for variation" + i);
return false;
}
}
}
}


I ran it through jslint and found these problems:

'<>' should be '!=='. This isn't Visual Basic.

When making an equality comparison, use '===', not '='

Also, you are making extremely bad use of the eval function. Never is eval. The
expression

eval('oForm.' + 'variation' + 0 + '.value')

probably wants to be

oForm['variation' + 0].value

If there is a chance that totalRecords is not an object, then wrap the for in
an if :

if (totalRecords) {
for(var i=0; i < tr; i++) {

http://www.crockford.com/javascript/lint.html
Jul 20 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.