我有一个表单,我希望能够在不验证的情况下保存,但在提交时验证。我在这个表单上有两个按钮可以保存或提交。
问题是:如果我使用“提交”按钮进行保存(然后切换控制器中的操作),jquery.validate将启动并且无法保存部分填写的表单。< / p>
如果我将其作为链接,我不知道如何将表单发布到控制器中的新操作。
以下是视图中的HTML:
<a class="btn btn-default" data-placement="right" data-title="Save your progress." href="/Summary/Save/2" rel="tooltip"><i class="glyphicon glyphicon-floppy-disk"></i> Save Summary</a>
<a class="btn btn-default" confirm="Are you sure you want to revert to the previous saved copy? You will lose all changes since your last save." data-placement="right" data-title="Revert back to your last saved copy." href="/Summary/Revert/2" rel="tooltip"><i class="glyphicon glyphicon-remove"></i> Revert Changes</a>
<button class="btn-default btn btn-primary" confirm="This will submit the summary to the evaluator for review. No changes will be allowed unless the evaluator returns it. Are you sure?" type="submit">Submit Summary</button>
答案 0 :(得分:3)
@ user2864740建议我暂时禁用jquery验证,这是个好主意 - 在jQuery Validation plugin: disable validation for specified submit buttons找到了一种方法
为方便起见,发布了答案:
您可以在提交按钮中添加取消的css类以禁止验证
e.g
<input class="cancel" type="submit" value="Save" />
答案 1 :(得分:2)
顺便说一句,根据Skipping validation on submit:
上的文档,目前的答案已被弃用要在仍使用提交按钮时跳过验证,请将属性
"formnovalidate"
添加到该输入:<input type="submit" name="go" value="Submit"> <input type="submit" formnovalidate name="cancel" value="Cancel">
以前通过向输入中添加
class="cancel"
来工作,现在已弃用。
虽然从版本1.17开始,这两种方法仍然出现在source code:
中<强>
...blob/1.17.0/src/core.js#L34
强>:// Allow suppressing validation by adding a cancel class to the submit button if ( $( this ).hasClass( "cancel" ) ) { validator.cancelSubmit = true; } // Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button if ( $( this ).attr( "formnovalidate" ) !== undefined ) { validator.cancelSubmit = true; }
进一步阅读:jQuery Validation plugin: disable validation for specified submit buttons
答案 2 :(得分:0)
您可以通过在要禁用验证的按钮中添加 formnovalidate
属性来实现。
<input formnovalidate="formnovalidate" type="submit" value="Save" />