我有一個簡單的帶2個按鈕的YUI對話框 - Accept和Decline。我想在單擊每個按鈕時將ColdFusion代碼與JavaScript代碼一起調用。當我將CF代碼與JS代碼一起引入時,不幸的是每個函數中存在的CF代碼都被觸發。從javascript事件處理程序調用ColdFusion代碼(服務器端代碼)時出現'Unexpected'行爲
所有代碼如下所示:
<script type="text/javascript">
function displayForm() {
YAHOO.namespace("example.container");
if (!YAHOO.example.container.Form) {
YAHOO.example.container.Form = new
YAHOO.widget.SimpleDialog("Form", {
modal: true,
icon: YAHOO.widget.SimpleDialog.ICON_WARN,
visible: false,
fixedcenter: true,
constraintoviewport: true,
width: "500px",
role: "alertdialog",
draggable: false,
buttons: [ { text:"Accept", handler:handleAccept, isDefault:true }, { text:"Decline", handler:handleDecline} ]
});
YAHOO.example.container.Form.setHeader("Info");
YAHOO.example.container.Form.setBody("Body");
YAHOO.example.container.Form.render(document.body);
}
YAHOO.example.container.Form.show();
}
function handleAccept() {
this.cancel();
<CFQUERY name="UpdTable" datasource="test>
UPDATE t
set a = '1'
where b = '1'
</CFQUERY>
}
function handleDecline() {
this.cancel();
<CFQUERY name="UpdTable" datasource="test>
UPDATE t
set a = '2'
where b = '1'
</CFQUERY>
}
displayForm();
</script>
的問題是,當handleAccept()被自動觸發handleDecline()CF代碼得到觸發,所以我在一個=「2」結束了數據庫而不是a ='1'。
是否有解決方法或簡單的解決方案?理想情況下,我不想使用JS重定向。