我在表单上有一个用户名文本框,它通过DataAnnotation属性应用了一些验证规则:
[Required(ErrorMessage = "FTP login is required")]
[StringLength(15, ErrorMessage = "Must be 15 characters or fewer")]
[RegularExpression(@"[a-zA-Z0-9]*", ErrorMessage = "Alpha-numeric characters only")]
public string FtpLogin { get; set; }
我在这个文本框旁边还有一个按钮,它会触发一个jQuery ajax请求,检查是否存在用户名,如下所示:
<button onclick="check(this);return false;" id="FtpLoginCheck" name="FtpLoginCheck">Available?</button>
我正在寻找一种将两者结合在一起的方法,以便在onclick事件中调用“check(this)”之前执行客户端验证。
编辑:为了更清楚,我需要一种方法来检查或触发文本框的客户端验证结果,当我点击它旁边的无关按钮时。
编辑:我现在有按钮JS检查$(“form”)。validate()。无效,但不显示通常的验证消息。几乎就是
有什么想法吗?
答案 0 :(得分:1)
好的,我的解决方案是在按钮onclick事件期间手动触发客户端验证:
var validator = $("form").validate({
submitHandler: function(form) { /* do nothing */ }
});
if (validator.errorList.length > 0) return;
答案 1 :(得分:0)
怎么样:
$(function() {
$("#FtpLoginCheck").live("click", function(e){
e.preventDefault();
var $this = $(this);
check($this);
}
});
这将在asp.net MVC2进行客户端验证后触发。