gpt4 book ai didi

javascript - 限制从 CheckboxList 中选择的选项数量

转载 作者:行者123 更新时间:2023-12-01 02:34:08 25 4
gpt4 key购买 nike

我试图只允许用户从可能有 12 个选项的复选框列表中选择 5 个选项。我已添加此代码,但用户可以根据自己的意愿进行选择。

这是我的完整语法。

为什么这没有按照我的意愿发出警报?

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
var limit = 5;
$(function () {
$('[id*="cbxlTestInputAmt"]').on('change', function (evt) {
if ($('[id*="cbxlTestInputAmt"]:checked').length > limit) {
this.checked = false;
alert('cannot select more than ' + limit);
}
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBoxList ID="cbxlTestInputAmt" runat="server" RepeatLayout="table" RepeatColumns="2" RepeatDirection="vertical"></asp:CheckBoxList>
</div>
</form>
</body>
</html>

我正在从数据库填充 C# 代码中的复选框列表。我认为这就是 JQuery 不适合我的原因。

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLString1"].ConnectionString))
{
SqlDataAdapter ad = new SqlDataAdapter("Select X FROM OIKJC ORDER BY ID ASC", conn);
ad.Fill(dt);
}
cbxlTestInputAmt.DataSource = dt;
cbxlTestInputAmt.DataTextField = "X";
cbxlTestInputAmt.DataValueField = "X";
cbxlTestInputAmt.DataBind();
}
}

编辑2
这是页面源代码

    <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form method="post" action="./StJudes" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/arN4mVK5SbGdvL+R7WrYMRnz8V5l4JL9V3Mni0wMrfoNV8HdxGgfuGLcsQDI0QcQeB6J8U7mUzXSzGMKyLlJ/aalb0tRLilgRH6mlf+ZTGC8f8NBCIb0Bqhs/nU7dyk10ZeZxyc6US362rQdf2I507YnK8EcAXrTQuUir4mMyh+k06tUlLZeA6NHntT45j7vnUsboHm0wCzhuW9B6Kw9QTgoB5XnbsmLTxsAPmvpNCI7ATtIfX6pF1hf/1WkrkN0tYmKA3MX+Uq2N2gXwnZFx73mxAAbpSFcx7P8kIdNlBze3XwgzCHL9qJRujTxxlnbcnwrw00drXudPbiZvKFL7f2Hnfe0xs+k6WOx962kiF0sHyvNhLBC3o4yqfV3tzdcNpCbt/YlUYJP5LkVJ4k7rmr638IMr021fgYGLhRxff70NKwBNKrkUflk/ZpoY8oMLciB3AZPq4x7ob0WAa7l4HGlWEusMCxsiW0i3/VMFLnS/VtmoJIdcRGrbwjbGNq1EvnCyh32oCvgO/kmzlMVCVOtpZhNR+SBpdQW4dIhkBCCKQHReV8YPK0OF13hEHAekgFuXw5SsTok8dGtLUnDXoy1DOxbe3AV6wpdTzuDvQfsgJYEiV1mUn1k35E4pz4+dLNK7RtjM4nId0jnj6Rpfgpke743BNmwr7prkcbMoBz44Rf3K+Ov2+UlMj3mXYWvREGBmAUWAqvRuHu373uZ6JyjHY0lg7Ui+5fGGkyrBezZFHgoSRu/xmPP9em0myqagVQxKZHXOGHsPwBd2+ZHl5hsC/eO21X3SxGJmoc6PO1Grns5X0oSNv3moG/J+7ZfU6LWJobDZ4cJkMa3KjgB5+ymRm2AjoIQwkwCI9SOAe4g0NLMaOdYCJ/VVgfGEgdgTyN/qM9owibjyXNQEtHH/gpMv1bNZ5jHZzc0LOZEG7KltJ4PMdVyAjwpV3wR9Q1Yz6/YBE0rYYM7+cMcMFgqvkmggMZ/EiCSB/NWcpkl4Ljrs9C6xcF6Rh51W56Ddf2C5ZEIhrE3KCOHDWlr3pj9zF7CIyGVIpwtsTTCQfCL7QjlIw5u2vd4HvlfrdYrErv/ezDXrTMErkQnpfaQRpwi4zLOCZKQ9Qd2SYGaKZsDdN6foV7iBPH5TABi2r8SUUHotDlWD8bYbntUAlTVhJ1e5amY7RgzWNVPhlsTLIfFF5vwQAW0Qg9BSUTKOtx1A5dssTY9iUlVa+gJDjfEohvLcO9Qtym8As+OA2tBCJ/2jQyhGgo+prm1S+MVGTVuItm" />
</div>

<div>
<table id="cbxlTestInputAmt">
<tr>
<td><input id="cbxlTestInputAmt_0" type="checkbox" name="cbxlTestInputAmt$0" value="Choice 1" /><label for="cbxlTestInputAmt_0">Choice 1</label></td><td><input id="cbxlTestInputAmt_8" type="checkbox" name="cbxlTestInputAmt$8" value="Choice 5" /><label for="cbxlTestInputAmt_8">Choice 5</label></td>
</tr><tr>
<td><input id="cbxlTestInputAmt_1" type="checkbox" name="cbxlTestInputAmt$1" value="Choice 2" /><label for="cbxlTestInputAmt_1">Choice 2</label></td><td><input id="cbxlTestInputAmt_9" type="checkbox" name="cbxlTestInputAmt$9" value="Choice 6" /><label for="cbxlTestInputAmt_9">Choice 6</label></td>
</tr><tr>
<td><input id="cbxlTestInputAmt_2" type="checkbox" name="cbxlTestInputAmt$2" value="Choice 3" /><label for="cbxlTestInputAmt_2">Choice 3</label></td><td><input id="cbxlTestInputAmt_10" type="checkbox" name="cbxlTestInputAmt$10" value="Choice 7" /><label for="cbxlTestInputAmt_10">Choice 7</label></td>
</tr><tr>
<td><input id="cbxlTestInputAmt_3" type="checkbox" name="cbxlTestInputAmt$3" value="Choice 4" /><label for="cbxlTestInputAmt_3">Choice 4</label></td><td><input id="cbxlTestInputAmt_11" type="checkbox" name="cbxlTestInputAmt$11" value="Choice 8" /><label for="cbxlTestInputAmt_11">Choice 8</label></td>
</tr><tr>
</tr>
</table>
</div>

<div class="aspNetHidden">

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="EAAE48E8" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="Sy90TVaOKW0SPZaQc4kBfWFelyOefK2WoFykp7mXwf8t1tCQ1rpzVdnpgLuNxUsSq4LLnzDYvh5HpOvi781XrWO2QN3jsMS0nwr+2o8Qq5CSde1phnI9bO5cNFwJLytC54FG6o/Uv4AbjSKIvZ5hsmWRfu0AtPCuFsgeJXK3nkJI++SHHLuvdqc3dkJYCyzFY8ls6ton28qjRu1LfvTN40WIGxqe+XODIS5UEeFpj3eAbjN4vZnO9rAkE3mGOscT50S201BcFZQNRvzJMEDYe2lXadzzxCWP2P5456Q18+P3A9DPlZheRW6yTNdiUM1HUoZXpMjtR0+8nbnDnCBv4TNcjSdUCKz2hOWuuESysZr5u52LKxZFKQKXFpQVwLjm4GiNRSs03ERpdikPXXMH1Wg1j8SrK5eYkZiGO+DMBciiv3nud//ZiRZeeUcn14Mj" />
</div></form>
<script type="text/javascript">
var limit = 5;
$(function () {
$('#form1').on('change', '[id="cbxlTestInputAmt"]', function (evt) {
if ($('[id="cbxlTestInputAmt"]:checked').length > limit) {
this.checked = false;
alert('cannot select more than ' + limit);
}
});
});
</script>

<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
{"appName":"Chrome","requestId":"fc04a78059374a078423b035a01ea2a7"}
</script>
<script type="text/javascript" src="http://localhost:60326/3217fe137445440cbce21c780fe62311/browserLink" async="async"></script>
<!-- End Browser Link -->

</body>
</html>

最佳答案

尽管您发布的服务器端代码指示带有 *= 限定符的属性选择器,但您发布的渲染源代码显示了两个 id 选择器,它们分别是检查相等性:

[id="cbxlTestInputAmt"]

当我将它们更改为:

[id*="cbxlTestInputAmt"]

代码按其应有的方式工作。

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form method="post" action="./StJudes" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/arN4mVK5SbGdvL+R7WrYMRnz8V5l4JL9V3Mni0wMrfoNV8HdxGgfuGLcsQDI0QcQeB6J8U7mUzXSzGMKyLlJ/aalb0tRLilgRH6mlf+ZTGC8f8NBCIb0Bqhs/nU7dyk10ZeZxyc6US362rQdf2I507YnK8EcAXrTQuUir4mMyh+k06tUlLZeA6NHntT45j7vnUsboHm0wCzhuW9B6Kw9QTgoB5XnbsmLTxsAPmvpNCI7ATtIfX6pF1hf/1WkrkN0tYmKA3MX+Uq2N2gXwnZFx73mxAAbpSFcx7P8kIdNlBze3XwgzCHL9qJRujTxxlnbcnwrw00drXudPbiZvKFL7f2Hnfe0xs+k6WOx962kiF0sHyvNhLBC3o4yqfV3tzdcNpCbt/YlUYJP5LkVJ4k7rmr638IMr021fgYGLhRxff70NKwBNKrkUflk/ZpoY8oMLciB3AZPq4x7ob0WAa7l4HGlWEusMCxsiW0i3/VMFLnS/VtmoJIdcRGrbwjbGNq1EvnCyh32oCvgO/kmzlMVCVOtpZhNR+SBpdQW4dIhkBCCKQHReV8YPK0OF13hEHAekgFuXw5SsTok8dGtLUnDXoy1DOxbe3AV6wpdTzuDvQfsgJYEiV1mUn1k35E4pz4+dLNK7RtjM4nId0jnj6Rpfgpke743BNmwr7prkcbMoBz44Rf3K+Ov2+UlMj3mXYWvREGBmAUWAqvRuHu373uZ6JyjHY0lg7Ui+5fGGkyrBezZFHgoSRu/xmPP9em0myqagVQxKZHXOGHsPwBd2+ZHl5hsC/eO21X3SxGJmoc6PO1Grns5X0oSNv3moG/J+7ZfU6LWJobDZ4cJkMa3KjgB5+ymRm2AjoIQwkwCI9SOAe4g0NLMaOdYCJ/VVgfGEgdgTyN/qM9owibjyXNQEtHH/gpMv1bNZ5jHZzc0LOZEG7KltJ4PMdVyAjwpV3wR9Q1Yz6/YBE0rYYM7+cMcMFgqvkmggMZ/EiCSB/NWcpkl4Ljrs9C6xcF6Rh51W56Ddf2C5ZEIhrE3KCOHDWlr3pj9zF7CIyGVIpwtsTTCQfCL7QjlIw5u2vd4HvlfrdYrErv/ezDXrTMErkQnpfaQRpwi4zLOCZKQ9Qd2SYGaKZsDdN6foV7iBPH5TABi2r8SUUHotDlWD8bYbntUAlTVhJ1e5amY7RgzWNVPhlsTLIfFF5vwQAW0Qg9BSUTKOtx1A5dssTY9iUlVa+gJDjfEohvLcO9Qtym8As+OA2tBCJ/2jQyhGgo+prm1S+MVGTVuItm" />
</div>

<div>
<table id="cbxlTestInputAmt">
<tr>
<td><input id="cbxlTestInputAmt_0" type="checkbox" name="cbxlTestInputAmt$0" value="Choice 1" /><label for="cbxlTestInputAmt_0">Choice 1</label></td><td><input id="cbxlTestInputAmt_8" type="checkbox" name="cbxlTestInputAmt$8" value="Choice 5" /><label for="cbxlTestInputAmt_8">Choice 5</label></td>
</tr><tr>
<td><input id="cbxlTestInputAmt_1" type="checkbox" name="cbxlTestInputAmt$1" value="Choice 2" /><label for="cbxlTestInputAmt_1">Choice 2</label></td><td><input id="cbxlTestInputAmt_9" type="checkbox" name="cbxlTestInputAmt$9" value="Choice 6" /><label for="cbxlTestInputAmt_9">Choice 6</label></td>
</tr><tr>
<td><input id="cbxlTestInputAmt_2" type="checkbox" name="cbxlTestInputAmt$2" value="Choice 3" /><label for="cbxlTestInputAmt_2">Choice 3</label></td><td><input id="cbxlTestInputAmt_10" type="checkbox" name="cbxlTestInputAmt$10" value="Choice 7" /><label for="cbxlTestInputAmt_10">Choice 7</label></td>
</tr><tr>
<td><input id="cbxlTestInputAmt_3" type="checkbox" name="cbxlTestInputAmt$3" value="Choice 4" /><label for="cbxlTestInputAmt_3">Choice 4</label></td><td><input id="cbxlTestInputAmt_11" type="checkbox" name="cbxlTestInputAmt$11" value="Choice 8" /><label for="cbxlTestInputAmt_11">Choice 8</label></td>
</tr><tr>
</tr>
</table>
</div>

<div class="aspNetHidden">

<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="EAAE48E8" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="Sy90TVaOKW0SPZaQc4kBfWFelyOefK2WoFykp7mXwf8t1tCQ1rpzVdnpgLuNxUsSq4LLnzDYvh5HpOvi781XrWO2QN3jsMS0nwr+2o8Qq5CSde1phnI9bO5cNFwJLytC54FG6o/Uv4AbjSKIvZ5hsmWRfu0AtPCuFsgeJXK3nkJI++SHHLuvdqc3dkJYCyzFY8ls6ton28qjRu1LfvTN40WIGxqe+XODIS5UEeFpj3eAbjN4vZnO9rAkE3mGOscT50S201BcFZQNRvzJMEDYe2lXadzzxCWP2P5456Q18+P3A9DPlZheRW6yTNdiUM1HUoZXpMjtR0+8nbnDnCBv4TNcjSdUCKz2hOWuuESysZr5u52LKxZFKQKXFpQVwLjm4GiNRSs03ERpdikPXXMH1Wg1j8SrK5eYkZiGO+DMBciiv3nud//ZiRZeeUcn14Mj" />
</div></form>
<script type="text/javascript">
var limit = 5;
$(function () {
$('#form1').on('change', '[id*="cbxlTestInputAmt"]', function (evt) {
if ($('[id*="cbxlTestInputAmt"]:checked').length > limit) {
this.checked = false;
alert('cannot select more than ' + limit);
}
});
});
</script>

<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
{"appName":"Chrome","requestId":"fc04a78059374a078423b035a01ea2a7"}
</script>
<script type="text/javascript" src="http://localhost:60326/3217fe137445440cbce21c780fe62311/browserLink" async="async"></script>
<!-- End Browser Link -->

</body>
</html>

关于javascript - 限制从 CheckboxList 中选择的选项数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48068202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com