让我们看看 ListItems 的文本和值是否不同?-
我已经解释了获取复选框或复选框列表的值/文本的所有可能情况,如下所示: -
案例 1:- 如果 CheckBoxList 项的文本和值相同
<asp:CheckBoxList ID="CheckBoxList1" runat="server" Width="180">
<asp:ListItem Value="SQL" Text="">SQL</asp:ListItem>
<asp:ListItem Value="ASP.Net" Text="">ASP.Net</asp:ListItem>
<asp:ListItem Value="jQuery" Text="">jQuery</asp:ListItem>
<asp:ListItem Value="MVC" Text="">MVC</asp:ListItem>
<asp:ListItem Value="IIS" Text="">IIS</asp:ListItem>
</asp:CheckBoxList>
调用下面的 js 函数 onclick 或任何你需要的地方(如果需要在 document.ready 块中调用)
function getChkVal1() {
$chk_values = $("[id$=CheckBoxList1] input[type=checkbox]:checked").map(function (index, foElem) {
return $(this).next().html();
}).get();
alert($chk_values);
}
案例 2:- 如果 CheckBoxList Items Values 是数字顺序(例如 1,2,3 ...n 当然,很多时候我们使用这种方式)
<asp:CheckBoxList ID="CheckBoxList2" runat="server" BackColor="#ffcccc" Width="180">
<asp:ListItem Value="1" Text="">SQL</asp:ListItem>
<asp:ListItem Value="2" Text="">ASP.Net</asp:ListItem>
<asp:ListItem Value="3" Text="">jQuery</asp:ListItem>
<asp:ListItem Value="4" Text="">MVC</asp:ListItem>
<asp:ListItem Value="5" Text="">IIS</asp:ListItem>
</asp:CheckBoxList>
js函数如下
function getChkVal2() {
$chk_values = $("[id$=CheckBoxList2] input[type=checkbox]").map(function (index, foElem) {
if ($(this).is(":checked"))
return (index + 1);
}).get();
alert($chk_values);
}
案例 3:- 如果 CheckBoxList Items Values 是其文本的一些缩写/首字母(例如,对于 Mango,我会说“M”)
在这里,我使用了一个技巧来获取页面上复选框的值,以便在编写 js 脚本时可以轻松访问它。也就是说,我正在使用一个带有 checkboxlist 的隐藏字段,它将在 html 解析期间获取 checkboxlist 中的所有可用值,并将它们存储在页面上的值中。见下文:-
<asp:CheckBoxList ID="CheckBoxList3" runat="server" BackColor="#ffccff" Width="180">
<asp:ListItem Value="S" Text="">SQL</asp:ListItem>
<asp:ListItem Value="A" Text="">ASP.Net</asp:ListItem>
<asp:ListItem Value="J" Text="">jQuery</asp:ListItem>
<asp:ListItem Value="M" Text="">MVC</asp:ListItem>
<asp:ListItem Value="I" Text="">IIS</asp:ListItem>
</asp:CheckBoxList>
<input type="hidden" id="hdnChkBox3" value='<%=String.Join( ",", CheckBoxList3.Items.Cast<ListItem>().Select(item=>item.Value) ) %>' />
我使用的是 html 隐藏域而不是 runat=server ,因为我们不需要使用这个隐藏域在 cs 中编写任何代码。这里hiddenfield的作用只不过是帮助者,它将在编写js时提供舒适感并获取复选框的值。
现在,让我们看看脚本的外观:-
function getChkVal3() {
$chk_items = $("#hdnChkBox3").val().split(","); // Get all checkboclist values from hiddenfield and convert it to array using split()
// so now we have ItemIndex and Values Index in Array as parallel
$chk_values = $("[id$=CheckBoxList3] input[type=checkbox]").map(function (index, foElem) {
if ($(this).is(":checked")) {
return ($chk_items[index]);
}
}).get();
alert($chk_values);
}
同样,您可以在单选按钮列表/单选按钮上执行此操作。