检查Javascript中的哪个复选框已选中

时间:2014-08-13 22:18:35

标签: javascript jquery asp.net checkbox

在我正在创建的页面上,我有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 %>", "");
}
}

1 个答案:

答案 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);
}

如果我理解你的问题,这应该可以完成你想要做的事。