Jquery Validator - 根据接受的值列表检查输入

时间:2011-04-17 20:30:16

标签: jquery validation

我通常只使用下拉列表执行此操作,但客户端已请求将其作为文本输入...

基本上,我想使用Jquery验证器来检查用户是否在文本输入框中输入了50个有效美国州缩写中的1个。如果没有,他们会收到错误。我似乎找不到这样做的功能。非常感谢任何帮助!

3 个答案:

答案 0 :(得分:18)

以下是您可以添加用于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");

然后应用验证器

$("#myform").validate()

并在您的表单中,您希望将类添加到表单元素以检查

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

这是working demo

答案 1 :(得分:1)

您可以使用change() listener只根据有效输入字符串列表检查输入,并且只有匹配时才启用提交按钮。

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

此致

克里斯

答案 2 :(得分:0)

这是一个肮脏的快速解决方案:

http://jsfiddle.net/naveed_ahmad/CqXZu/1/