ASP.NET MVC2 RC:如何在ajax请求之前拦截或触发客户端验证?
我在表单上有一个用户名文本框,它通过DataAnnotation属性应用了一些验证规则:ASP.NET MVC2 RC:如何在ajax请求之前拦截或触发客户端验证?,asp.net,asp.net-mvc-2,Asp.net,Asp.net Mvc 2,我在表单上有一个用户名文本框,它通过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")] p
[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()。无效,但不显示通常的验证消息。快到了
有什么想法吗?好的,所以我的解决方案是在按钮onclick事件期间手动触发客户端验证:
var validator = $("form").validate({
submitHandler: function(form) { /* do nothing */ }
});
if (validator.errorList.length > 0) return;
那么:
$(function() {
$("#FtpLoginCheck").live("click", function(e){
e.preventDefault();
var $this = $(this);
check($this);
}
});
这将在asp.net MVC2执行客户端验证后触发。您实施了哪些客户端验证?我怀疑答案可能是“Doh!”客户端验证在文本框上成功执行,但其成功/失败对按钮单击是否继续没有影响。例如,无效的文本框值显示验证消息,但我需要一种方法将此验证失败绑定到按钮(以禁用它)