我正在尝试使用jQuery验证插件来动态验证一些文本字段。其中一条规则是该字段不能包含'http'
。我如何修改validate()
方法来实现这一目标?
@using (Html.BeginForm("UserDetails", "Account", FormMethod.Post, new {id = "registerform" }))
{
<input id="Facebook" minlength="2" name="Facebook" placeholder="eg: Joe.Bloggs123" type="text" value>
...
}
<script>
$('#registerform').validate({
// ...?
})
</script>
编辑:我尝试添加了validator.addmethod,但它仍然不起作用。这就是我在脚本中的内容:
$('#registerform').validate();
jQuery.validator.addMethod("Facebook", function(value, element) {
return this.optional(element) || (value.indexOf('http') >= 0);
}, "*Please just use your userid, not the full url");
另外我需要验证很多这些,是不是可以添加自定义类并从中进行选择?
答案 0 :(得分:3)
以下是最终对我有用的内容:
<script>
jQuery.validator.addMethod("checkhttp", function(value, element) {
return this.optional(element) || (value.indexOf('http') < 0) && (value.indexOf('www') < 0);
}, "*Please just use your userid, not the full url");
jQuery.validator.classRuleSettings.checkhttp = { checkhttp: true };
$('#registerform').validate();
</script>
@using (Html.BeginForm("UserDetails", "Account", FormMethod.Post, new {id = "registerform" }))
{
<input id="Facebook" class="checkhttp" name="Facebook" placeholder="eg: Joe.Bloggs123" type="text" value>
}
答案 1 :(得分:-1)
这是针对你的情况,但我建议你使用正则表达式
if( $('#Facebook').val().indexOf('http') >= 0 ) {
alert('Contains http');
} else {
alert('Doesn't contain http');
修改强> 对不起,我还没有正确地阅读这个问题。
添加jQuery验证器
jQuery.validator.addMethod("DoesNotContain", function(value, element)
{
return this.optional(element) || (indexOf('http') < 0);
}, "* Can't contain http");