我的表单有一个自动填充button
,用一些inputs
填充默认信息。但是,填充字段不会清除已存在的任何验证消息,除非用户手动点击或标记元素。即使消息存在,表单仍将提交。这是填充的JavaScript。
$('#autofillButton').click(function () {
$('#address').val("localhost");
$('#port').val("12345");
$('#receiveTimeout').val("5000");
$('#sendtimeout').val("5000");
})
有人建议在我的点击功能中添加$("form").validate().resetForm();
,但这对我不起作用。验证消息仍然存在。这是我的观点的相关部分。
<p>
@Html.LabelFor(c => c.address):
@Html.TextBoxFor(c => c.address)
@Html.ValidationMessageFor(c => c.address, String.Empty, new { @class ="errorMessage"})
</p>
<p>
@Html.LabelFor(c => c.port):
@Html.TextBoxFor(c => c.port)
@Html.ValidationMessageFor(c => c.port, String.Empty, new { @class ="errorMessage"})
</p>
如何在不重置整个表单的情况下仅重置验证消息?
答案 0 :(得分:2)
简单且可重用的 jQuery函数,您可以在任何 jQuery对象上调用:
$.fn.clearErrors = function () {
$(this).each(function() {
$(this).find(".field-validation-error").empty();
$(this).trigger('reset.unobtrusiveValidation');
});
};
用法:
question.clearErrors();
选项2:
您可以查看在浏览器中生成的html代码,然后通过jquery将其清空,例如空()
要查找生成的代码:
正常回发:在浏览器中查看页面的“源代码”并查找错误消息。找到父div来清空它。
Ajax调用:右键单击并检查Chrome中的元素(其他现代浏览器调用它的方式不同,但他们应该使用该工具)。这将为您提供在当前状态下生成的html(在ajax调用之后)。找到父div并清空它。
希望这有帮助