0
私は元々$(form).submit()
のために働いていた機能を持っています。メインビューには既にform.sumbit()関数があるので、$("#savebutton").click()
で動作するように修正する必要がありました。唯一の問題は、ボタンがクリックされ、状態が有効なときにフォームが送信を停止したことです。 古いコードJqueryは機能しません
$(document).ready(function() {
$("form").submit(function (e) {
e.preventDefault(); //prevent default form submit
$.ajax({
url: '@Url.Action("HasJobInProgress", "ClientChoices")/',
data: { id: '@Model.ClientId' },
success: function (data) {
showMsg(data);
},
cache: false
});
});
});
function showMsg(hasCurrentJob) {
if (hasCurrentJob == "True") {
alert("The current clients has a job in progress. No changes can be saved until current job completes");
return false;
} else {
$("form").unbind('submit').submit();
}
}
CurrentCode
$(document).ready(function() {
$("#saveButton").click(function (e) {
e.preventDefault(); //prevent default form submit
$.ajax({
url: '@Url.Action("HasJobInProgress", "Shared")/',
data: { id: '@Model.ClientId' },
success: function (data) {
showMsg(data);
},
cache: false
});
});
function showMsg(hasCurrentJob) {
if (hasCurrentJob == "True") {
alert("The current clients has a job in progress. No changes can be saved until current job completes");
return false;
} else {
$("form").submit();
}
return true;
}
});
アップデート(まだ動作していない)
$(document).ready(function() {
$("#saveButton").click(function (e) {
if ($(e.currentTarget).data('shouldSubmit')) return;
e.preventDefault(); //prevent default form submit
$.ajax({
url: '@Url.Action("HasJobInProgress", "Shared")/',
data: { id: '@Model.ClientId' },
success: function (data) {
showMsg(data, e);
},
cache: false
});
});
function showMsg(hasCurrentJob, e) {
if (hasCurrentJob == "True") {
alert("The current clients has a job in progress. No changes can be saved until current job completes");
return false;
} else {
$(e.currentTarget).data('shouldSubmit', true);
$("#saveButton").click();
$(e.currentTarget).data('shouldSubmit', null);
}
return true;
}
});
私はそれに続いて難しいですが、試行しました。上記に投稿します。もし何かが見えたら教えてください。 –
@atbyrd、私はあなたの更新されたバージョンで何か明らかな間違いはありません。私はあなたがデバッガでそれをステップアップすることをお勧めします。 – Joe