在我正在创建的页面上,我有20个Rad按钮,它们的切换类型是CheckBox (按钮里面有一个复选框)。 在java脚本中我想知道检查哪个“CheckBox”以便禁用其余的按钮是否有任何简单的方法可以做到这一点????? (假设选中了Checkbox 1,因此应禁用所有其他19个复选框 我有20个按钮我不希望我的代码是意大利面条代码。
这是我的代码:
asp.net
<telerik:RadButton ID="btnPic1" runat="server" ToggleType="CheckBox" ButtonType="StandardButton" AutoPostBack="False" CommandName="GetPicture1Info" OnClientClicked="DisablePicture">
<ToggleStates>
<telerik:RadButtonToggleState Text="Select Picture 1" PrimaryIconCssClass="rbToggleCheckboxChecked" CssClass="rbSkinnedButtonChecked" />
<telerik:RadButtonToggleState Text="Select Picture 1" PrimaryIconCssClass="rbToggleCheckbox" />
</ToggleStates>
</telerik:RadButton>
<telerik:RadButton ID="btnPic2" runat="server" ToggleType="CheckBox" ButtonType="StandardButton" AutoPostBack="False" CommandName="GetPicture2Info" OnClientClicked="DisablePicture">
<ToggleStates>
<telerik:RadButtonToggleState Text="Select Picture 2" PrimaryIconCssClass="rbToggleCheckboxChecked" CssClass="rbSkinnedButtonChecked" />
<telerik:RadButtonToggleState Text="Select Picture 2" PrimaryIconCssClass="rbToggleCheckbox" />
</ToggleStates>
</telerik:RadButton>
JS
function DisablePicture(sender, args) {
var Pic1 = $find("<%=btnPic1.ClientID %>");
var Pic2 = $find("<%=btnPic2.ClientID %>");
var Pic3 = $find("<%=btnPic3.ClientID %>");
var Pic4 = $find("<%=btnPic4.ClientID %>");
var Pic5 = $find("<%=btnPic5.ClientID %>");
var Pic6 = $find("<%=btnPic6.ClientID %>");
var Pic7 = $find("<%=btnPic7.ClientID %>");
var Pic8 = $find("<%=btnPic8.ClientID %>");
var Pic9 = $find("<%=btnPic9.ClientID %>");
var Pic10 = $find("<%=btnPic10.ClientID %>");
var Pic11 = $find("<%=btnPic11.ClientID %>");
var Pic12 = $find("<%=btnPic12.ClientID %>");
var Pic13 = $find("<%=btnPic13.ClientID %>");
var Pic14 = $find("<%=btnPic14.ClientID %>");
var Pic15 = $find("<%=btnPic15.ClientID %>");
var Pic16 = $find("<%=btnPic16.ClientID %>");
var Pic17 = $find("<%=btnPic17.ClientID %>");
var Pic18 = $find("<%=btnPic18.ClientID %>");
var Pic19 = $find("<%=btnPic19.ClientID %>");
var Pic20 = $find("<%=btnPic20.ClientID %>");
if (Pic1.get_checked() == true) {
Pic2.set_enabled(false);
Pic3.set_enabled(false);
Pic4.set_enabled(false);
Pic5.set_enabled(false);
Pic6.set_enabled(false);
Pic7.set_enabled(false);
Pic8.set_enabled(false);
Pic9.set_enabled(false);
Pic10.set_enabled(false);
Pic11.set_enabled(false);
Pic12.set_enabled(false);
Pic13.set_enabled(false);
Pic14.set_enabled(false);
Pic15.set_enabled(false);
Pic16.set_enabled(false);
Pic17.set_enabled(false);
Pic18.set_enabled(false);
Pic19.set_enabled(false);
Pic20.set_enabled(false);
__doPostBack("<%=btnGetPictureInformation.UniqueID %>", "");
} else if (Pic2.get_checked() == true) {
Pic2.set_enabled(true);
Pic1.set_enabled(false);
Pic3.set_enabled(false);
Pic4.set_enabled(false);
Pic5.set_enabled(false);
Pic6.set_enabled(false);
Pic7.set_enabled(false);
Pic8.set_enabled(false);
Pic9.set_enabled(false);
Pic10.set_enabled(false);
Pic11.set_enabled(false);
Pic12.set_enabled(false);
Pic13.set_enabled(false);
Pic14.set_enabled(false);
Pic15.set_enabled(false);
Pic16.set_enabled(false);
Pic17.set_enabled(false);
Pic18.set_enabled(false);
Pic19.set_enabled(false);
Pic20.set_enabled(false);
__doPostBack("<%=btnGetPictureInformation.UniqueID %>", "");
}
}
答案 0 :(得分:0)
在没有看到其余代码的情况下,我可以建议将数组作为解决此问题的一种方法。如果你可以使用单选按钮而不是复选框,整个问题可能会消失,但为了论证:
var controls = [];
controls.push($find("<%=btnPic1.ClientID %>"));
controls.push($find("<%=btnPic2.ClientID %>"));
controls.push($find("<%=btnPic3.ClientID %>"));
controls.push($find("<%=btnPic4.ClientID %>"));
controls.push($find("<%=btnPic5.ClientID %>"));
controls.push($find("<%=btnPic6.ClientID %>"));
controls.push($find("<%=btnPic7.ClientID %>"));
controls.push($find("<%=btnPic8.ClientID %>"));
controls.push($find("<%=btnPic9.ClientID %>"));
controls.push($find("<%=btnPic10.ClientID %>"));
controls.push($find("<%=btnPic11.ClientID %>"));
controls.push($find("<%=btnPic12.ClientID %>"));
controls.push($find("<%=btnPic13.ClientID %>"));
controls.push($find("<%=btnPic14.ClientID %>"));
controls.push($find("<%=btnPic15.ClientID %>"));
controls.push($find("<%=btnPic16.ClientID %>"));
controls.push($find("<%=btnPic17.ClientID %>"));
controls.push($find("<%=btnPic18.ClientID %>"));
controls.push($find("<%=btnPic19.ClientID %>"));
controls.push($find("<%=btnPic20.ClientID %>"));
这是一种将控件的所有引用添加到数组的相当繁琐的方法,因此您可以像这样循环遍历它们:
for (var i = 0; i < controls.length; i++) {
if (controls[i].get_checked() != true)
controls[i].set_enabled(false);
}
如果我理解你的问题,这应该可以完成你想要做的事。