以下を使用してフォームをリセットした後、問題が発生しました。
$(".cancel").click(function () {
validator.resetForm();
$(':input', '#MyForm')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
//OR
document.getElementById('MyForm').reset();
});
もう一度保存すると、必須フィールドが不要になり、フォームがポストバックされます。リセット後もフォームを再検証するにはどうすればよいですか?
検証とフォームをリセットするだけなので、これは単純な例ですが、他のページでは特定のフィールドを手動で操作する必要があるため、フォームをリセットするにはこの方法が必要です。
違いがある場合、これはMVCで作成されたフォームです
助言がありますか?
EDIT:いくつかの試行錯誤の後、問題は直接の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 呼び出しで壊れていたため、コメント アウトされました。これは関連していますか?