2016-02-29 47 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