javascriptstringcompare

Javascript String Compare == sometimes fails


How could the following code sometimes evaluate to false?

(transport.responseText == '1' || 
 transport.responseText == 'CARD_VALID')

My JavaScript code:

if (transport.responseText == '1' || 
    transport.responseText == 'CARD_VALID') {
    // do something.
}
else if (transport.responseText == 'CARD_INVALID' || 
             transport.responseText == 'INVALID_CHECKSUM') {
    // do something else....
}
else {
    new Ajax.Request('/report_error.php?responseText='+transport.responseText);
    // report error to user
}

What could cause JavaScript string compare == to return false when the strings are identical?


Solution

  • Double equals is the appropriate way to compare strings in Javascript, it is returning false then there may be whitespace to the left and or right of one string.

    Put a .trim() on the end of the strings and my comparison should started working:

    var panel = response.substr(0, response.indexOf("<")).trim();
    if(panel == "combo"){
        //do something
    }