1

我有 2 个复选框,其中只有一个或没有可以被选中。由于我无法进行回发,因此我使用 Javascript 进行了尝试。Javascript 找到该元素(使用警报对其进行测试)。但价值不会改变。

知道如何使用 Javascript 做到这一点吗?

Javascript:

function mrcAndNbbFilterChanged(mrcOrNbb)
        {
            alert("er in");
          if(mrcOrNbb == 0)
          { 
            document.getElementById("ctl00_contentHolder_cb_mrcFilter").checked=true; 
            document.getElementById("ctl00_contentHolder_cbNoBackBilling").checked=false; 
            alert(document.getElementById("ctl00_contentHolder_cbNoBackBilling"));
            alert("0");
          }
          else
          {
            if(mrcOrNbb == 1)
            {
                alert("1");
                document.getElementById("cb_mrcFilter").checked=false; 
                document.getElementById("cbNoBackBilling").checked=true; 
            }
          }
        }

ASP 代码:

<asp:CheckBox ID="cb_mrcFilter" runat="server" Text="Only MRC" OnClick="mrcAndNbbFilterChanged(0)" /> 
<asp:CheckBox ID="cbNoBackBilling" runat="server" Text="No back billing" OnClick="mrcAndNbbFilterChanged(1)"  />    
4

1 回答 1

4

ASP.NETctl00_在使用 ASP 控件时将该 -esque 字符串应用于 ID 以确保它们是唯一的。您可以使用以下方法获取 ASP 修改的 ID 值:

document.getElementById("<%= cb_mrcFilter.ClientID %>").checked=false;
document.getElementById("<%= cbNoBackBilling.ClientID %>").checked=true;

此外,作为旁注,您可以使用else if { ... }, 而不是else { if { ... } }只处理一种选择:

if(mrcOrNbb == 0) {
    ...
}
else if(mrcOrNbb == 1) {
    ...
}
于 2013-05-22T09:56:51.620 回答