2015-07-13 58 views
0

我是我的应用程序,我有一个窗体拆分在多个页面上,viewmodel张贴accorss所有页面(向前&落后)。如何禁用页面加载jquery unobrusive验证,但继续提交点击

所有形式的方法是HTTP后

Page 1 form is submitted to page 2 (Next) 
Page 2 form is submitted to Page 3 (Next) or to Page 1 (Previous) 
Page 3 form is submitted to Page 4 (Next) or to Page 2 (Previous) 
.... 

我的问题是,第2页加载时,表单验证和所有必填字段都处于错误状态(正常,他们是空的,在这个阶段)

我在寻找一种方法,方式上的页面加载或禁用unobrusive验证时,上一按钮,用户点击(必须是提交,因为隐藏字段应张贴)发生

验证shouldt只有当用户点击o n“下一个”按钮。

总之一句话:我只想在用户点击“下一步”按钮时验证表单。

感谢

+0

你应该看看使用诸如JQuery Steps之类的工具。它是一个伟大的图书馆,用于实现你在这里做什么 – Derek

+0

经过测试但与boostrap/jQuery/Unobrusive验证不兼容。我使用了很多MVC 5编辑器模板,我无法重写模板,因为它们几乎在我的应用程序的任何地方都可以使用。 – Webmixer

+0

如果你可以发布一些代码,你可能会得到一个快速的答案。如果你显示一些控制器代码(如果你正在做一个完整的回发)或JavaScript(如果你正在做AJAX/Post),那么我将能够帮助你。 – br4d

回答

0

你应该能够CSS类取消添加到一个提交按钮来抑制客户端验证。

<input class="cancel" type="submit" value="Cancel" /> 
0

找到了解决方案:在以前的按钮添加此单击禁用验证提交:

$("form").validate().cancelSubmit = true; 

,当第二张贴的形式加载删除验证:

$(document).ready(function() { 

     // don't know why but without this, don't work 
     $('#form-inscription').validate().resetForm(); 

     var $form = $("#form-inscription"); 

     // get validator object 
     var $validator = $form.validate(); 

     // get errors that were created using jQuery.validate.unobtrusive 
     var $errors = $form.find(".field-validation-error"); 

     // this removes the validation messages 
     $errors.each(function (e) { 
      $(this).html(''); 
     }); 

     // clear errors from validation 
     $validator.resetForm(); 
    });