Click to See Complete Forum and Search --> : Need help w/ syntax error
IndyB
06-13-2003, 10:23 AM
I'm getting a syntax error on line six, char 3.
Can anyone tell me what I'm doing wrong here?
Here's the code that's giving me the error:
function docard_number()
{
cardnumber_val = document.frmpage.CreditCard.value;
if (cardnumber_val.length = "16" && ( cardnumber_val.slice(0,2) == "51" || cardnumber_val.slice(0,2) == "52" || cardnumber_val.slice(0,2) == "53" || cardnumber_val.slice(0,2) == "54" || cardnumber_val.slice(0,2) == "55" ))
else if ((cardnumber_val.length == "13" || cardnumber_val.length == "16") && cardnumber_val.slice(0,1) == "4" )
else if (cardnumber_val.length = "15" && ( cardnumber_val.slice(0,2) == "34" || cardnumber_val.slice(0,2) == "37" )
else if (cardnumber_val.length = "16" && cardnumber_val.slice(0,4) == "6011" )
else {error = "Only Visa, Master Card, American Express, and Discover cards are accepted."}
}
You need to use two equals signs for comparison, not one.
Jona
IndyB
06-13-2003, 10:30 AM
Thanks. I changed those, but now it still doesn't work. I'm getting the same error.
function docard_number()
{
cardnumber_val = document.frmpage.CreditCard.value;
if (cardnumber_val.length == "16" && ( cardnumber_val.slice(0,2) == "51" || cardnumber_val.slice(0,2) == "52" || cardnumber_val.slice(0,2) == "53" || cardnumber_val.slice(0,2) == "54" || cardnumber_val.slice(0,2) == "55" ))
else if ((cardnumber_val.length == "13" || cardnumber_val.length == "16") && cardnumber_val.slice(0,1) == "4" )
else if (cardnumber_val.length == "15" && ( cardnumber_val.slice(0,2) == "34" || cardnumber_val.slice(0,2) == "37" )
else if (cardnumber_val.length == "16" && cardnumber_val.slice(0,4) == "6011" )
else {error = "Only Visa, Master Card, American Express, and Discover cards are accepted."}
}
You're treating the numbers as strings; take off the quotes.
Jona
IndyB
06-13-2003, 10:37 AM
Thanks, I'm still getting the same error after removing quotes. Is there something else I'm missing?
function docard_number()
{
cardnumber_val = document.frmpage.CreditCard.value;
if( cardnumber_val.length == 16 && ( cardnumber_val.slice(0,2) == 51 || cardnumber_val.slice(0,2) == 52 || cardnumber_val.slice(0,2) == 53 || cardnumber_val.slice(0,2) == 54 || cardnumber_val.slice(0,2) == 55 ) )
else if ( (cardnumber_val.length == 13 || cardnumber_val.length == 16) && cardnumber_val.slice(0,1) == 4 )
else if ( cardnumber_val.length == 15 && ( cardnumber_val.slice(0,2) == 34 || cardnumber_val.slice(0,2) == 37 )
else if ( cardnumber_val.length == 16 && cardnumber_val.slice(0,4) == 6011 )
else {error = "Only Visa, Master Card, American Express, and Discover cards are accepted."}
}
function docard_number() {
var cardnumber_val = document.frmpage.CreditCard.value;
if(cardnumber_val.length == 16 && (cardnumber_val.slice(0,2) == 51 || cardnumber_val.slice(0,2) == 52 || cardnumber_val.slice(0,2) == 53 || cardnumber_val.slice(0,2) == 54 || cardnumber_val.slice(0,2) == 55)){}
else if((cardnumber_val.length == 13 || cardnumber_val.length == 16) && cardnumber_val.slice(0,1) == 4){}
else if(cardnumber_val.length == 15 && (cardnumber_val.slice(0,2) == 34 || cardnumber_val.slice(0,2) == 37)) { }
else if(cardnumber_val.length == 16 && cardnumber_val.slice(0,4) == 6011 ) { }
else {error = "Only Visa, Master Card, American Express, and Discover cards are accepted."}
}
Jona
IndyB
06-13-2003, 10:47 AM
Thanks Jona, that did it!
Was it the spaces between the parenthesis that were causing a problem?
No, it wasn't. You can put the spaces back in there--personally I would've changed this code up a lot more, but I figured I should stick to what you've already got--so I only changed it a little.
Anyways, the error was in the parenthesis. You were missing the last parenthesis on the first and third if/else statments, and had a small syntax error in the second (I think :p).
Jona
IndyB
06-13-2003, 11:03 AM
thanks for your help