在MVC 3“取消”提交按钮中禁用客户端验证

时间:2011-03-19 17:30:12

标签: asp.net-mvc asp.net-mvc-3 validation client-side

好的,一直在尝试几个小时,可以使用一些帮助。我正在尝试在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中做其他事情,但似乎找不到任何例子。

4 个答案:

答案 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>
    &nbsp;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;
        });
    }
});