【问题标题】:MVC 4 unobtrusive Jquery Validation beforeSubmitMVC 4 不显眼的 Jquery 验证 beforeSubmit
【发布时间】:2013-04-23 17:43:03
【问题描述】:

我想连接所有表单,以便在 Jquery Validation 没有发现错误之后以及在提交表单之前或提交时显示加载器。

如何使用 MVC 4 不显眼的验证来实现这一点?

我根据这篇文章尝试了以下操作,How to add a 'submitHandler' function when using jQuery Unobtrusive Validation?

$("form").data("validator").settings.submitHandler = function (form) { alert('submit'); form.submit(); };

我把它放在 OnLoad 部分,但它不会触发。我认为上述方法适用于所有形式?

谢谢!

【问题讨论】:

  • 什么都没有。我希望可以进行某种回调。

标签: asp.net-mvc-4 jquery-validate unobtrusive-validation


【解决方案1】:

请参阅the built-in setDefaults method 的文档。您也不需要 form.submit() 行,因为插件已经处理好了。

$.validator.setDefaults({
    submitHandler: function (form) {
        alert('valid form submitted'); // for demo
        return false; // for demo, blocks default submit, needed with ajax too.
    }
});

演示:http://jsfiddle.net/W4jfY/


编辑

改为仅适用于一种形式...

$('#myform').validate({
    // any other options for this form,
    submitHandler: function (form) {
        alert('valid form submitted'); // for demo
        return false; // for demo, blocks default submit, needed with ajax too.
    }
});

【讨论】:

  • 谢谢!那行得通,但是您确实需要其中的 form.submit() ,因为没有它就无法工作。欣赏!
  • 我在同一页面中有另一个由 ajax 处理的表单。这似乎打破了这种形式。我可以以某种方式使其成为条件吗?
  • @JulianDormon,哦,当然。只需将 submitHandler 选项放在一个表单上,而不是放在 setDefaults 方法内。
  • 谢谢,但这似乎不起作用 - 代码被忽略或可能被 MVC 不显眼的验证脚本覆盖。
  • @AlexKey,如果您根本不使用submitHandler,那么在验证后,表单使用formaction 属性提交。但是,当您确实使用submitHandler 时,您必须以某种方式自己提交表单,通过ajaxsubmit。我唯一的一点是,如果您在 submitHandler 中除了 form.submit() 之外没有其他代码,那么您根本不需要使用 submitHandler,因为这已经是插件的默认代码和行为。跨度>
猜你喜欢
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 2015-03-27
  • 2013-01-05
  • 2011-12-22
  • 1970-01-01
  • 2012-06-18
  • 2016-02-19
相关资源
最近更新 更多