2011-04-17 61 views
10

列表我通常只是做這一個下拉列表,但客戶端請求,這是一個文本輸入...jQuery的驗證 - 檢查輸入違反公認的價值

基本上,我想使用Jquery驗證器檢查用戶是否已將50個有效的美國州名縮寫中的1個輸入到文本輸入框中。如果不是,他們會得到一個錯誤。我似乎無法找到這樣做的功能。任何幫助是極大的讚賞!

回答

17

這裏是你聲明驗證方法,你可以用jquery validate

首先添加使用驗證者:

jQuery.validator.addMethod("isstate", function(value) { 
    var states = [ 
     "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", 
     "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
     "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", 
     "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", 
     "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", 
     "AS", "DC", "FM", "GU", "MH", "MP", "PR", "PW", "VI" 
    ]; 
    return $.inArray(value.toUpperCase(), states) != -1; 
}, "Data provided is not a valid state"); 

然後應用要將該類添加到表單元素檢查

<input type="text" value="de" class="isstate" /> 

這裏有一個working demo

+0

Mcgrailm驗證

$("#myform").validate() 

和表單,謝謝!這正是我正在尋找的,但我在我的FireFox錯誤控制檯中得到這個:錯誤:states.toUpperCase不是一個函數。 – Paul 2011-04-17 23:40:36

+0

對不起,這是值得去作爲價值是一個字符串,需要大寫,以檢查它的數組我認爲它是大小寫無論如何 – mcgrailm 2011-04-17 23:45:02

+0

@保羅請讓我知道,如果這對你有用 – mcgrailm 2011-04-17 23:56:21

1

您可以使用change() listener,它只是根據有效輸入字符串列表檢查輸入,並且只有在匹配時才啓用提交按鈕。

反正。對於用戶體驗,最好顯示包含所有可能狀態的下拉列表。至少這是我首先想到的,當我回答你的問題時。

問候,

克里斯