我使用以下方法重置表单后遇到问题:
$(".cancel").click(function () {
validator.resetForm();
$(':input', '#MyForm')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
//OR
document.getElementById('MyForm').reset();
});
当我再次点击保存时,不再需要必填字段并且表单会发回。即使在重置后,如何让表单重新验证?
这是一个简单的例子,因为我只是重置验证和表单,但在其他页面上我必须手动操作某些字段,所以我需要这种重置表单的方式才能工作。
这是一个 MVC 创建的表单,如果这有什么不同的话
有什么建议么?
编辑:经过反复试验,问题似乎不应该出在直接的 resetForm 代码上,而应该出在其他问题上。
在控制台中,我收到以下 javascript 错误:
SyntaxError: invalid label
和警告
Use of attributes' specified attribute is deprecated. It always returns true.
不确定它们是否与我的问题有关,但不确定此时还能做什么。
至于我正在使用的脚本:
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/Scripts/jquery-1.8.3.min.js")
@*@Scripts.Render("~/Scripts/jquery-1.9.1.min.js")*@
@Scripts.Render("~/Scripts/jquery-ui-1.9.2.js")
@Scripts.Render("~/Scripts/jquery.validate.js")
@Scripts.Render("~/Scripts/jquery-validate-messages.js")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
@Scripts.Render("~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.js")
@Scripts.Render("~/Scripts/jquery.jeditable.mini.js")
@Scripts.Render("~/Scripts/DataTables-1.9.4/media/js/jquery.dataTables.editable.js")
@Scripts.Render("~/Scripts/DataTables-1.9.4/extras/TableTools/media/js/TableTools.js")
@Scripts.Render("~/Scripts/Countdown.js")
@Styles.Render("~/Scripts/DataTables-1.9.4/media/css/jquery.dataTables.css")
@RenderSection("scripts", required: false)
1.9.1 被注释掉了,因为它在第一次 JQuery 调用时中断了。这有关系吗?