我正在尝试从jquery中的checkboxlist获取值,并根据具有哪个值,选中或取消选中复选框。 这就是我所拥有的:
<asp:CheckBoxList CssClass="styled" ID="chkTestTypeEdit" RepeatDirection="Horizontal" style="padding:5px;" runat="server"> <asp:ListItem Value="1" Text="Y/N" /> <asp:ListItem Value="2" Text="Num" /> </asp:CheckBoxList>
然后在模态弹出窗口打开之前我有这段代码:
$(document).on("click", ".open-EditTest", function () {
var optesttype =$(this).data('optesttype');
var items = $('#<% = chkTestTypeEdit.ClientID %> input:checkbox');
for (var i = 0; i < items.length; i++) {
var val = $('#ctl00_MainContent_chkTestTypeEdit_0').val();
var val2 = $('label[for=" + <%= chkTestTypeEdit.ClientID %> +_0 "]').text();
if (items[i].value == optesttype) {
items[i].checked = true;
break;
}
}
$('#EditTest').modal('show');
});
所以optesttype将有1或2,然后我试图再次比较item [i]值,但该值始终为'on'。 我尝试了两种方法,我在网上找到var var和val2,但没有选择任何东西。 你们怎么认为我需要接近这个? 谢谢,Laziale
答案 0 :(得分:1)
我用以下方式解决了这个问题。我的复选框列表的ASP.NET代码如下所示
<asp:CheckBoxList ID="chkHourly" runat="server" RepeatLayout="Table"
RepeatColumns="4" RepeatDirection="Horizontal">
<asp:ListItem Value="0">00:00 AM</asp:ListItem>
<asp:ListItem Value="1">01:00 AM</asp:ListItem>
<asp:ListItem Value="2">02:00 AM</asp:ListItem>
</asp:CheckBoxList>
生成的HTML将如下所示
<table id="ctl00_chkHourly" border="0">
<TBODY>
<TR>
<TD>
<INPUT id=ctl00_chkHourly_0 name=ctl00$chkHourly$0 value="" CHECKED type=checkbox>
<LABEL for=ctl00_chkHourly_0>00:00 AM</LABEL></TD>
<TD>
<INPUT id=ctl00_chkHourly_1 name=ctl00$chkHourly$1 value="" type=checkbox>
<LABEL for=ctl00_chkHourly_1>01:00 AM</LABEL></TD>
<TD>
<INPUT id=ctl00_chkHourly_2 name=ctl00$chkHourly$2 value="" type=checkbox>
<LABEL for=ctl00_chkHourly_2>02:00 AM</LABEL>
</TD>
</TR>
</TBODY>
请注意,表格中的每个输入旁边都会创建一个标签,当选中一个复选框时,输入的值将为“on”,您看到的选项是标签的文本,在我的情况下我需要文本,但为了获得值也在一个圆形,我会读取检查的单个输入字段的名称。请参阅我编写的下面代码,以阅读所选文本以及所选输入的名称,以便我可以剥离它并在需要时读取值。
var postData = new Array();
$("[id*=chkHourly] input[type=checkbox]:checked").each(function () {
alert($(this).next().text());
alert($(this).next().html());
alert($(this).attr("name"));
postData.push($(this).next().text());
});
if (postData.length > 0) {
alert("Selected Text(s): " + postData);
}
else {
alert("No item has been selected.");
}
答案 1 :(得分:0)
请尝试以下操作:
$("#demo").live("click", function () {
var selectedValues = "";
$("[id*=CheckBoxList1] input:checked").each(function () {
if (selectedValues == "") {
selectedValues = "Selected Values:\r\n\r\n";
}
selectedValues += $(this).val() + "\r\n";
});
if (selectedValues != "") {
alert(selectedValues);
} else {
alert("No item has been selected.");
}
});
检查以下内容:
ASP.NET CheckBoxList Operations with jQuery
2)sample