复选框不会使用javascript更改值

时间:2013-05-22 09:52:08

标签: javascript asp.net

我有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)"  />    

1 个答案:

答案 0 :(得分:4)

ASP.NET在使用ASP控件时将ctl00_ - 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) {
    ...
}