我有一个部分视图在主视图中渲染。部分视图利用了System.ComponentModel.DataAnnotations和Html.EnableClientValidation()。
单击链接,并且包含部分视图的div将显示在JQuery.Dialog()中。
然后,我点击保存按钮,而不会在我的验证输入字段中输入任何文本。这导致客户端验证按预期触发,并在无效字段旁显示“* required”消息。
当单击取消按钮时,我想将客户端MVC验证重新设置为默认状态,并删除任何消息,当用户再次打开该对话框时准备好。有没有推荐的方法呢?
解决方法
如果您只想清除验证信息,以便不会向用户显示这些信息,则可以使用javascript进行操作:
function resetValidation() { //Removes validation from input-fields $('.input-validation-error').addClass('input-validation-valid'); $('.input-validation-error').removeClass('input-validation-error'); //Removes validation message after input-fields $('.field-validation-error').addClass('field-validation-valid'); $('.field-validation-error').removeClass('field-validation-error'); //Removes validation summary $('.validation-summary-errors').addClass('validation-summary-valid'); $('.validation-summary-errors').removeClass('validation-summary-errors'); }
如果您需要重置为仅在弹出窗口中工作,您可以这样做:
function resetValidation() { //Removes validation from input-fields $('#POPUPID .input-validation-error').addClass('input-validation-valid'); $('#POPUPID .input-validation-error').removeClass('input-validation-error'); //Removes validation message after input-fields $('#POPUPID .field-validation-error').addClass('field-validation-valid'); $('#POPUPID .field-validation-error').removeClass('field-validation-error'); //Removes validation summary $('#POPUPID .validation-summary-errors').addClass('validation-summary-valid'); $('#POPUPID .validation-summary-errors').removeClass('validation-summary-errors'); }
我希望这是你寻求的效果。