使用“z”和&&amp ;;进行Javascript表单验证(“x”||“y”)

时间:2014-06-09 22:47:29

标签: javascript

似乎在进行某些验证方面遇到了一些麻烦。

目前正在尝试实现一个系统,如果变量为false,将重定向用户,并且表单包含0000或1111.

示例:

if xml_response == "false" && form == ("0000" || "1111") {
    window.location.replace("");
} else {
    submit.form
}

我已经能够让它在0000工作。如果XML生成false,表单包含0000,则成功重定向。

如果XML生成false并且form包含1111,则没有骰子。我认为这与我如何格式化我的运营商有关。有什么想法吗?

这是我的陈述:

if (response == "false" && document.forms['Form'].id.value==("0000" || "1111") ) {
window.location.replace("http://url/");
} else {
document.getElementById("submit_form").submit();
}

2 个答案:

答案 0 :(得分:2)

这是无效的,您必须单独检查每个值

if ((xml_response == "false") && (form == "0000" || form == "1111")) {
    window.location.replace("");
} else {
    submit.form
}

请注意,您正在检查字符串false和看起来像数字的字符串。

还可以选择检查数组中的多个值

if ( 
    ( response == "false" ) && 
    ( ['0000','1111'].indexOf(document.forms['Form'].id.value) != -1 )
   ) 
{
   window.location.replace("http://url/");
} else {
   document.getElementById("submit_form").submit();
}

甚至

/(0000|1111)/.exec(document.forms['Form'].id.value)

答案 1 :(得分:0)

请注意:

document.forms['Form'].id.value

将尝试在文档中找到名称或ID为" Form"的表单。如果找到一个,它将访问它的ID属性,这是一个字符串,并尝试读取它的 value 属性。字符串没有"值"属性,因此结果将是值 undefined