我想提出一個有2個按鈕的jQuery對話框。這樣用戶可以決定是否繼續進行覆蓋操作。jQuery對話框在頁面加載時運行的按鈕功能
一個按鈕,除了關閉對話窗口之外,「否」按鈕應該什麼也不做。 「Yes」按鈕應該調用一個函數,這個函數可以對我的控制器上的一個action方法進行jQuery post調用。
問題是我的操作方法似乎在頁面加載時運行,它不等待對話框顯示。
下面是對話
<div id="dialog" title="My Dialog Box">
<p>
Ballance Already Exsists. Do you wish to overwrite?</p>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#dialog").dialog({ bgiframe: true, autoOpen: false, modal: true, buttons: { 'OK': overWriteBalance(), 'NO': $(this).dialog('close') }
});
});
</script>
的標記和這裏的功能
balanceCheckPost = function (data) {
$("#existCheck").val(data);
if (data) {
// Does Exist
$("#existCheck").val("Exist");
// raise confirmation popup
$('#dialog').dialog("open");
}
else {
// Does Not Exist
$("#existCheck").val("NOT Exist");
// insert Item
var balance = {};
balance.date = $("#bal_Date").val();
balance.amount = $("#bal_Amount").val();
$.post("balance/insert",
balance,
confirmChange
);
}
};
function overWriteBalance() {
// insert Item
var balance = {};
balance.date = $("#bal_Date").val();
balance.amount = $("#bal_Amount").val();
$.post("balance/edit",
balance,
confirmChange
);
};
,這裏是我的控制器代碼。
public void edit(Balance bal)
{
var dataContext = new DataDataContext();
var balToEdit = dataContext.Balances.Single(b => b.Date == bal.Date);
balToEdit.Amount = bal.Amount;
dataContext.SubmitChanges();
}
問題是我的控制器中的編輯功能在頁面加載時運行。
是因爲我在$(document).ready中定義了我的對話框按鈕,所以它運行該方法或其他東西。
感謝
你的開玩笑,我已經把我的頭髮拉出了一會兒......謝謝 – 2010-11-22 10:35:17