我目前正在使用jQuery Validation,我有一个包含四个输入字段的表格-单词,国家/地区,年龄和性别。
国家/地区,年龄和性别验证没有任何问题,但是Word不想验证-我试图获取Word值以在验证之前对照黑名单检查其自我,我试图防止用户提交令人反感的单词。
此刻,无论我在“单词”输入字段中键入什么单词,它始终显示为错误,并且不想验证。
如果有人能看到我要去哪里错了,我将不胜感激!
JS
/* Blacklist Array */
var blacklist = ['foo', 'bar', 'fizz', 'buzz', /* many more banned words... */ ];
/* Blacklist Validation */
jQuery.validator.addMethod("word", function(value) {
var in_array = $.inArray(value, blacklist);
if (in_array == -1) {
return false;
} else {
return true;
}
});
/* Submit Validation */
$("#submit").validate({
errorPlacement: function(error, element){},
rules: {
word: {
required: true
},
country: {
required: true
},
age: {
required: true
},
sex: {
required: true
}
},
submitHandler: function(form) {
alert('Submitted');
}
});
的HTML
<form methord="post" name="wordsubmit" id="submit">
<div class="inner">
<input class="word" name="word" placeholder="Your Word" type="text"/>
<select class="country" name="country" size='1'>
<option value="">Your country</option>
</select>
<select class="age" name="age" size='1'>
<option value="">Age</option>
<option value="18-24">18-24</option>
<option value="25-34">25-34</option>
<option value="35+">35+</option>
</select>
<select class="sex" name="sex" size='1'>
<option value="">Sex</option>
<option value="Male">Male</option>
<option vlaue="Female">Female</option>
</select>
</div>
<input class="submit" name="submit" type="submit" value="Submit"/>
</form>
word
您添加的方法中的逻辑是向后的。如果输入的字阵中没有找到(即$.inArray
回报率-1
),那么你想返回true
,因为这字是有效的。
在这种情况下,您可以将逻辑简化为:
/* Blacklist Validation */
jQuery.validator.addMethod("word", function(value) {
return $.inArray(value, blacklist) == -1;
});
请注意,在示例中,我已删除了错误消息抑制功能,因此您可以看到代码正常工作。
也有必要确保大小写与黑名单数组中的值一致,因此您可以使用value.toUpperCase()
或将输入的单词转换为相同的大小写value.toLowerCase()
,因为当前FoO
不匹配foo
并且将被标记为有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句