好的,一直在尝试几个小时,可以使用一些帮助。我正在尝试在MVC 3中实现一个具有“后退”和“下一步”按钮的页面。单击后退按钮时,我想禁止运行客户端MVC验证,以便我的操作方法将运行并将用户发送到上一个逻辑网页。我试过这个:
<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" />
但无论如何,静音端验证JavaScript都会启动,并且不会让按钮执行回发操作。我认为disableValidation
也许只适用于MVC 2,我应该在MVC 3中做其他事情,但似乎找不到任何例子。
答案 0 :(得分:124)
当你在某个地方发布问题时,这种神秘的力量会导致答案显露出来,这是什么?
在MVC 3中,您可以通过向其添加“取消”类来禁用按钮上的客户端验证。所以在我的例子中:
<input type="submit" name="backButton" value="← Back"
title="Go back to step 1." class="cancel" />
效果很好。并且也不需要ID属性。如果按钮上有实际的样式类,只需执行以下操作:
<input type="submit" name="backButton" value="← Back"
title="Go back to step 1." class="style-name cancel" />
答案 1 :(得分:1)
验证脚本似乎与提交类型input
相关联。通过将cancel
更改为按钮,将跳过验证:
<button type="button" onclick="document.location.href('Index')">Cancel</button>
答案 2 :(得分:0)
我知道...一个很老的问题..但是当我看时它是搜索结果的顶部。
对于MVC 4(和按钮),(至少对我而言)答案似乎只是添加 formnovalidate =“ formnovalidate”
<button type="submit" class="btn btn-outline-success border-0" formnovalidate="formnovalidate" name="command" value="Back" title="Back">
<span class="fas fa-arrow-left" aria-hidden="true"></span>
Back
</button>
答案 3 :(得分:-1)
我用这个按钮
$("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;
});
}
});