在MVC 3中禁用客户端validation“取消”提交button

好吧,一直在尝试几个小时,可以使用一些帮助。 我试图在MVC 3中实现具有“后退”和“下一步”button的页面。 当后退button被点击时,我想禁止运行客户端MVCvalidation,以便我的操作方法将运行并将用户发送到以前的逻辑网页。 我试过这个:

<script type="text/javascript"> document.getElementById("backButton").disableValidation = true; </script> 

和这个:

 <input type="submit" name="backButton" value="← Back" title="Go back to step 1." disableValidation="true" /> 

但无论如何,静默方面的validationJavaScript踢,并不会让button做回传。 我在想, disableValidation只能在MVC 2中工作,而且我应该在MVC 3中做别的事情,但似乎找不到任何示例。

什么是这个神秘的力量,只要你在某个地方发表一个问题,就会使答案显现出来?

它看起来像在MVC 3中,您通过添加“取消”类来禁用客户端validationbutton。 所以在我的例子中:

 <input type="submit" name="backButton" value="← Back" title="Go back to step 1." class="cancel" /> 

很好。 也不需要ID属性。 如果你在button上有一个实际的样式类,就这样做:

 <input type="submit" name="backButton" value="← Back" title="Go back to step 1." class="style-name cancel" /> 

validation脚本似乎链接到提交typesinput 。 通过将cancel更改为button,validation将被跳过:

 <button type="button" onclick="document.location.href('Index')">Cancel</button> 

我用这个button

 $("button").each(function (elem) { var button = $($("button")[elem]); button.addClass('cancel'); if (button.attr('type') == 'submit') { button.click(function (e) { var validator = button.closest('form').validate(); validator.cancelSubmit = true; }); } });