是否有可能“入侵”ASP.NET MVC 3中支持的不引人注意的验证?

时间:2011-03-14 06:23:26

标签: jquery validation asp.net-mvc-3 data-annotations unobtrusive-javascript

我希望能够使用内置的,基于数据注释的,客户端不显眼的验证,但在我知道它通过后,我自己做了ajax表单提交。

像这样的jQuery位:

$('#form').submit(function(e) {
  e.preventDefault();

  if (PassesUnobtrusiveValidation()) {
    // ajax submit form
  }
});

是否存在PassedValidation事件或类似事件(内置于默认的基于asp.net mvc 3数据注释的客户端验证)我可以挂钩(如示例中的伪代码)?

我想这样做,所以我仍然可以利用基于数据注释的验证,然后以我想要的方式异步提交表单。我希望避免在客户端编写常见验证,让asp.net mvc 3为我处理它,然后使用$.ajax();

提交表单我想要的方式

1 个答案:

答案 0 :(得分:6)

如果您使用的是jquery.validate:

$('#myForm').submit(function() {
    if ($(this).valid()) {
        // Client side validation passed => submit the form
    }
});

另一种可能性是挂钩插件options

$.validator.setDefaults({
    submitHandler: function(form) {
        // Client side validation passed => submit the form
    }
});

如果你正在使用MSAjax,那么祝你好运。