2

我们在 UpdatePanel 中有两个复选框AutoPostBack="true"

<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 事件。一切都很好。

现在,我们有了另一个作用于相同 CheckBox 的 JavaScript 函数

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;
}

问题发生在这种情况下。

  1. 假设Company CheckBox首先检查。
  2. 然后我触发了 JavaScript 函数,它取消了检查Company CheckBox后覆盖Company CheckBox检查事件的效果。
  3. 现在,当我单击表单上的保存按钮时,IsCompanyEnabled_CheckChanged事件将在事件触发之前SaveButton_Click触发。

这几乎搞乱了我所有的代码流。我不想IsCompanyEnabled_CheckedChanged再次触发。我该如何克服这个问题?

有没有办法从 JavaScript 函数向 CheckBoxes 询问event.stopPropogation

4

1 回答 1

0

你试过stopPropagation () 吗?

 container.find(".agentcompany").find(":checkbox")
  .click(function(event){
      event.stopPropagation();
  });
于 2012-06-27T06:23:47.777 回答