我們有兩個複選框的UpdatePanel內與AutoPostBack="true"
停止事件傳播史爲的AutoPostBack複選框
<asp:CheckBox ID="IsCompanyEnabled" runat="server"
AutoPostBack="true"
Checked="false"
CssClass="agentcompany"
Text="COMPANY" />
<asp:CheckBox ID="IsCompanyNotDetermined" runat="server"
AutoPostBack="true"
Checked="false"
CssClass="agenttobedetermined"
Text="TO BE DETERMINED" />
在點擊這些複選框中的CheckedChanged事件將觸發。一切都很好。
現在,我們有另一個JavaScript函數作用於同一的CheckBox
function SetEmployeeDetails(selectedPanel) {
var panel_id = "#" + selectedPanel;
var container = $(panel_id);
container.find(".agentcompany").find(":checkbox").prop('checked', false); //problem zone
container.find(".agenttobedetermined").find(":checkbox").prop('checked', false); //problem zone
//$("#popup_dialog").dialog("close");
return false;
}
的問題發生在這種情況下。
- 假設首先檢查
Company CheckBox
。 - 然後我觸發JavaScript函數,它在覆蓋
Company CheckBox
選中事件的效果後取消對Company CheckBox
的檢查。 - 現在,當我單擊窗體上的保存按鈕時,
IsCompanyEnabled_CheckChanged
事件將在觸發事件之前觸發SaveButton_Click
。
這幾乎混淆了我所有的代碼流。我不想讓IsCompanyEnabled_CheckedChanged
再次觸發。我怎樣才能克服這個問題?
有沒有辦法從JavaScript函數詢問CheckBoxes到event.stopPropogation
?
在這裏你沒有選擇(選擇,xxxxchanged事件將在點擊事件之前觸發)。如果可能,請更改您的代碼設計以避免chckbox回發和CheckedChange處理程序。 – adatapost
@AVD:維護代碼...太大,無法更改... – naveen