IF声明中的多个条件不起作用

时间:2016-04-29 04:17:18

标签: javascript html forms

所以我有这个表格,用户输入一个数字及其状态。如果用户输入wa作为其状态和数字6,则POST返回true。但是,出于某种原因,当我输入wa和5时,它仍然会返回true,否则它不会。只是想知道为什么会这样。

非常感谢任何帮助。谢谢!

的JavaScript

function validatePOST()
{
var POST = false;
var STATE = document.getElementById("state").value;
var value = document.getElementById("postcode").value;
var digit = value.match(/\d/);

if ((digit == 6) && (STATE === wa)) 
{
    POST = true;
}


if ((digit == 5) && (STATE === sa))
{
    POST = true;
}

return POST;

}

3 个答案:

答案 0 :(得分:0)

使用STATE==="sa"STATE==="wa"

答案 1 :(得分:0)

我想这是因为缺少引号。您需要将其与字符串进行比较,而不是将其与存储在名为wa或sa的变量中的值进行比较 - 在​​这种情况下,您将不会使用引号

function validatePOST()
{
var POST = false;
var STATE = document.getElementById("state").value;
var value = document.getElementById("postcode").value;
var digit = value.match(/\d/);

if ((digit == 6) && (STATE === "wa")) 
{
    POST = true;
}


if ((digit == 5) && (STATE === "sa"))
{
    POST = true;
}

return POST;

}

你可以这样看起来有点整洁

if ( (digit == 6) && (STATE === "wa") ) 
{
    POST = true;
} else if ( (digit == 5) && (STATE === "sa") )
{
    POST = true;
}
    return POST;

答案 2 :(得分:0)

为字符串文字使用双引号。

function validatePOST()
{
var POST = false;
var STATE = document.getElementById("state").value;
var value = document.getElementById("postcode").value;
var digit = value.match(/\d/);

if ((digit == 6) && (STATE === "wa")) 
{
    POST = true;
}


if ((digit == 5) && (STATE === "sa"))
{
    POST = true;
}

return POST;

}

您可能还想阅读有关使用==和=== here

的信息