JavaScript函數需要提示用戶輸入一些數據,然後通過Ajax提交該數據。從一個WinForms/WPF背景的人,我首先想到的是做這樣的事情:JavaScript和模式對話框
function promptForData() {
$('#my-form').dialog({
autoOpen: true,
modal: true,
buttons: {
"OK": function() {
alert("Added");
// Unlike WinForms I cannot
// set a dialog result here
$(this).dialog("close");
},
"Cancel": function() {
alert("Canceled");
$(this).dialog("close");
}
}
});
}
function update() {
var data = promptForData();
// Unlike WinForms execution continues immediately even
// for a "modal" dialog (jQuery UI Dialog, modal: true)
makeAjaxCall(data);
}
明顯的解決方案似乎是重組的代碼,以便makeAjaxCall(data)
發生在該對話框的「確定」處理程序。
由於涉及的實際代碼明顯更復雜,我希望能夠區分使用數據的數據提示。有沒有合適的模式來做到這一點?
注意:顯示的實際實現使用jQuery UI,但我認爲問題與此無關。
「厄運金字塔」正是我所擔心的:-) – 2013-02-23 01:10:17