2016-02-29 40 views
1

我已阅读了很多帖子,并尝试过各种选项,但我的JavaScript验证检查似乎没有运行。javascript验证阵列不运行

我用这个post来尝试和写一个验证检查,看看输入的邮政编码是否是一个邮递区号,但是当我运行它时什么也没有发生,也没有任何警报出现。任何帮助表示赞赏。

这是JavaScript我用:

<script type="text/javascript"> 
function validateZip() { 
    var zipCode = $("#zipCode").val(); 
    var acceptableZipCodes = ["78205","72215","78212",]; 

if($.inArray(zipCode, acceptableZipCodes)){ 
    alert("Yes, we can help!"); 
    }else{ 
    alert("Sorry, we don't deliever to your area yet."); 
} 
} 
</script> 

这是形式

<form name="zipForm" onsubmit="return(validateForm(zipCode))"> 
    <input type="text" id="zipCode" name="zipCode"> 
    <input id="user_info" type="submit"> 
</form> 
+0

[如何添加与jQuery的事件处理程序(https://开头学习。 jquery.com/events/handling-events/) – adeneo

+0

在浏览器开发者控制台中是否收到任何错误? –

回答

1
function validateZip() { 
    var zipCode = document.zipForm.zipCode.value; 
    var acceptableZipCodes = ["78205","72215","78212",]; 

    for (i = 0; i < cars.acceptableZipCodes.length; i++) { 
    if(acceptableZipCodes[i] == zipCode{ 
    alert("Yes, we can help!"); 
    }else{ 
    alert("Sorry, we don't deliever to your area yet."); 
    } 
    } 
} 
1

我会用一个ID,而不是名称属性为窗体标签(用于更快恢复)。

<form id="zipForm"> 
    <input type="text" id="zipCode" name="zipCode"> 
    <input id="user_info" type="submit"> 
</form> 

然后在下面,我就这样做:

<script> 
$(function() { 
    // add an event handler to your form (look at adeneo's comment) 
    $('#zipForm').on('submit', function(e) { 
     // prevent form from submitting 
     e.preventDefault(); 
     // call your function 
     validateZip($("#zipCode").val()); 
    }); 

    function validateZip(zipCode) { 
    var acceptableZipCodes = ["78205", "72215", "78212"]; 
    // be careful with using $.inArray as the return value for no 
    // matches is -1 (and not false) 
    if ($.inArray(zipCode, acceptableZipCodes) != -1) { 
     alert("Yes, we can help!"); 
    } else { 
     alert("Sorry, we don't deliever to your area yet."); 
    } 
    } 
}); 
</script> 
+0

非常好,谢谢。这是有道理的 – Candice

1

有2次失误,我发现。 1,你定义函数validateZip,但你没有在脚本中调用它。2,inArray()函数将返回数组中值的位置,所以当数组中没有值时,它将返回-1。

我在代码中做了一些更改。 希望它能帮助你。

<form name="zipForm" onsubmit="return(validateZip())"> 
    <input type="text" id="zipCode" name="zipCode"> 
    <input id="user_info" type="submit"> 
</form> 

<script type="text/javascript"> 
function validateZip() { 
    var zipCode = $("#zipCode").val(); 
    var acceptableZipCodes = ["78205","72215","78212",]; 

if($.inArray(zipCode, acceptableZipCodes) !== -1){ 
    alert("Yes, we can help!"); 
    }else{ 
    alert("Sorry, we don't deliever to your area yet."); 
    } 
} 
</script> 
+0

谢谢,这正是我需要的! – Candice

0

你应该检查它是否是乞丐比-1:

if($.inArray(zipCode, acceptableZipCodes) > -1) 

这里一个的jsfiddle例如:JSFiddle

+0

谢谢!我会进去补充一下 – Candice