ここで検証が機能しないのはなぜですか? クリックすると、部分的なビューからコンテンツをロードするダイアログを開くリンクがあります。ダイアログのボタンがクリックされたときにフォームを検証したい。レイアウト ファイルに検証スクリプトを読み込みます。
$dialog = $<'<div></div>');
$('.linkClass').click(function (e) {
e.preventDefault();
$.ajax({
url: this.href,
type: "GET",
success: function (result) {
$dialog.load(this.url).dialog({
resize: "auto",
width: 490,
height: 430,
modal: true,
buttons: {
Save: function () {
if ($dialog.find('form:first').valid()) {
$.ajax({
url: "/Home/Dates",
type: "POST",
data: $('form').serialize(),
datatype: "html",
success: function (result) {
$dialog.dialog('close');
},
error: function (xhr, testStatus, error) {alert("Error occured: " + error + " " + xhr + " " + testStatus) }
});*/
}
else { alert("Please correct the errors on the form") }
},
Cancel: function () {
$(this).dialog("close");
}
}
});
$.validator.unobtrusive.parse($dialog.find('form:first').valid());
$dialog.dialog('open');
},
error: function (request, status, error) {
alert(request.responseText);
}
});
});
ただし、これは機能しません。検証スクリプトが正しく読み込まれていることがわかります。また、ダイアログにロードされた部分ビューにスクリプトを追加すると、検証がうまく機能します。どうしてこんなことに?これらのスクリプトを 2 つの場所にロードする必要があるのはなぜですか?