我正在使用Asp.Net MVC 3,我在生命周期的后期通过jquery使用[此代码] [1]通过jquery.validate添加验证器:
感谢redsquare的回答,我添加了一个这样的方法:
$.validator.addMethod(
"regex",
function(value, element, regexp) {
var check = false;
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Please check your input."
);
现在您需要做的就是对任何正则表达式进行验证是这样的:
$("Textbox").rules("add", { regex: "^[a-zA-Z'.\s]{1,40}$" })
验证工作正常,但实际的消息没有出现在任何地方......我做错了什么?谢谢。
答案 0 :(得分:3)
我有同样的问题。从来没有找到导致问题的原因,我最终通过将验证属性分配给输入字段来使用MVC不显眼的验证:
所以假设你有一个#Textbox输入:
<input class="text-box" id="Textbox" name="Textbox" type="text" value="">
打开验证的简单方法就是分配data-val- *属性:
$(document).ready(function(){
$('#Textbox').attr('data-val','true'); // turn on validation
$('#Textbox').attr('data-val-regex','The input does not match the validation pattern'); // message to show when validation fails
$('#Textbox').attr('data-val-regex-pattern',"@^[a-zA-Z'.\s]{1,40}$"); //regex
});
这是他在我的网站上这样做的方式,它的工作原理。你调用验证的方式可能会与微软实现jQuery验证器的方式发生冲突,但我无法找到它的位置
答案 1 :(得分:1)
您是否将它与mvc元模型一起使用?如果是这样,请确保您有
@Html.ValidationMessageFor(m => m.obj)
就在您的文本框旁边
希望这就是你的意思:)。
答案 2 :(得分:0)
好吧,假设您的表单选择器和验证功能设置正确,它应该正常工作,这可能是一个问题吗?发布剩余的验证将非常有用。
答案 3 :(得分:0)
您是否在动态添加的元素上添加验证器?如果是这样,我想你可以在这里找到答案:jquery.validate.unobtrusive not working with dynamic injected elements