2011-04-17 50 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,它只是根据有效输入字符串列表检查输入,并且只有在匹配时才启用提交按钮。

反正。对于用户体验,最好显示包含所有可能状态的下拉列表。至少这是我首先想到的,当我回答你的问题时。

问候,

克里斯