我有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)" />
答案 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) {
...
}