我使用this來測試表單是否髒。 默認爲標準瀏覽器確認,詢問您是否確定要從此頁面導航。在jQuery的dirtyforms網站上有一個部分,說你可以使用jquery ui模式表單。jquery髒記錄,想要jquery ui模式
所以,我想,像這樣添加一個部分(一個div):
<div id="unsavedChanges" title="Save Changes?">
<p>You've made changes to this page. Do you want to leave this page without saving?</p>
</div>
然後我說看起來像什麼他們的代碼:
$.DirtyForms.dialog = {
selector: '#unsavedChanges',
fire: function(message, dlgTitle) {
$('#unsavedChanges').dialog({ title: dlgTitle, width: 350, modal: true });
$('#unsavedChanges').html(message);
},
bind: function() {
$('#unsavedChanges').dialog('option', 'buttons',
[
{
text: "Stay Here",
click: function(e) {
$.DirtyForms.choiceContinue = false;
$(this).dialog('close');
}
},
{
text: "Leave This Page",
click: function(e) {
$.DirtyForms.choiceContinue = true;
$(this).dialog('close');
}
}
]
).bind('dialogclose', function(e) {
// Execute the choice after the modal dialog closes
$.DirtyForms.choiceCommit(e);
});
},
refire: function(content) {
return false;
},
stash: function() {
return false;
}
};
雖然我不知道他們想要我(我最初把它放在document.ready
之外,然而,在運行這個並對我的表單進行更改並導航之後,我發現它仍然使用瀏覽器確認而不是jquery ui對話框。 ?
hmmmm。通過閱讀文檔,我明白這是從他引用jquery 1.4.2和1.7.2開始就有點古怪了。從那以後,jquery和jquery ui都開始有了。任何人,你可以發佈一個這樣的小提琴,所以我們可以玩它使用jQuery和你使用的jQuery UI的版本? – Rooster
這看起來像一個更新的等效:http://plugins.jquery.com/are-you-sure/ – Anthony
是否有瀏覽器相關的安全問題,實際上需要您使用瀏覽器確認對話框?我認爲除了通過onbeforeunload事件(它只能返回一個字符串)之外,瀏覽器無法通過JavaScript進行瀏覽。 –