选择多个单选按钮(通过 jquery、javascript?)

Posted

技术标签:

【中文标题】选择多个单选按钮(通过 jquery、javascript?)【英文标题】:Selecting multiple radio buttons (through jquery, javasscript?) 【发布时间】:2011-10-29 15:33:37 【问题描述】:

我目前有一个表单,其中包含 5 个单选按钮条目(见下文)。 我正在寻找的档案如下: - 能够选择多个单选按钮 - 让我们说 3 并提交表单。

目前我可以使用 php、SQL 正常工作,但我只能选择一个单选按钮并提交。

我认为取消选择单选按钮也会派上用场,以防您错误地单击一个按钮。

我的猜测是这可以通过一些 javascript 来完成?有什么建议?也许是在线示例?

<form id="pollform" action="poll.php" method="post">
<input id="option-1" type="radio" value="1" name="poll">
<label for="option-1">Select option 1</label>

<input id="option-2" type="radio" value="2" name="poll">
<label for="option-2">Select option 2</label>

<input id="option-3" type="radio" value="3" name="poll">
<label for="option-3">Select option 3</label>

<input id="option-4" type="radio" value="4" name="poll">
<label for="option-4">Select option 4</label>

<input id="option-5" type="radio" value="5" name="poll">
<label for="option-5">Select option 5</label>
</form>

【问题讨论】:

为什么不使用复选框组呢?这就是为什么有复选框和单选按钮,用于不同的情况。 好的,我想我可以看到我需要使用复选框 :) 但是,我想我仍然需要使用一些 javascript 来实际计算用户已选中 3 个框并尝试选择复选框 nr 4不可能吗? 认为我自己想通了 - 在下面发布答案:) 感谢您的帮助! 【参考方案1】:

由于它具有相同的名称 poll,因此您将无法这样做,因为输入类型 radio 专门用于从多个输入中选择单个值。

您可以为此使用输入类型 checkbox 并将它们作为数组:

<form id="pollform" action="poll.php" method="post">
    <input id="option-1" type="checkbox" value="1" name="poll[]">
    <label for="option-1">Select option 1</label>

    <input id="option-2" type="checkbox" value="2" name="poll[]">
    <label for="option-2">Select option 2</label>

    <input id="option-3" type="checkbox" value="3" name="poll[]">
    <label for="option-3">Select option 3</label>

    <input id="option-4" type="checkbox" value="4" name="poll[]">
    <label for="option-4">Select option 4</label>

    <input id="option-5" type="checkbox" value="5" name="poll[]">
    <label for="option-5">Select option 5</label>
</form>

限制(使用 jQuery)数量:

$("input[type=checkbox][name=poll[]]").click(function() 
    var numberSel = $("input[type=checkbox][name=poll[]]:checked").length >= 3;     
    $("input[type=checkbox][name=poll[]]").not(":checked").attr("disabled",numberSel);
);

【讨论】:

好吧,我认为这很简单——但只是为了在我希望用单选按钮做什么的场景中设置它——即用户需要选择 3 个复选框并且不应该选择更多除此之外 - 对这种方法有什么建议吗? 感谢 Mihai - 在您的指导下,我设法让它工作了。 我想到的还有一件事 - 我可以使用相同的基本方法禁用提交按钮,然后在选中 3 个复选框时启用它吗?【参考方案2】:

单选按钮仅设计用于选择一项,请改用复选框。

【讨论】:

这不是 OP 的答案,而是一个澄清。如果您没有回答他的问题,请在 OP 的问题下发表评论以进行澄清。【参考方案3】:

单选按钮的设计使得每个组中只能选择一个选项(由其共享名称指定)一次可以选择(就像您只能将收音机调到一个电台一样)。

允许选择任意数量的选项的输入控件是复选框。如果您将[] 附加到它们的名称后,则所选选项将作为数组到达 PHP 端。

<input type="checkbox" value="1" name="poll[]" />
<input type="checkbox" value="2" name="poll[]" />

【讨论】:

以上是关于选择多个单选按钮(通过 jquery、javascript?)的主要内容,如果未能解决你的问题,请参考以下文章

我如何知道通过 jQuery 选择了哪个单选按钮?

我如何知道通过 jQuery 选择了哪个单选按钮?

jquery 在单击单选按钮时选择并激活特定类的所有项目

选择 A 单选按钮以在 jquery/javascript 中添加另一个输入

基于两个单选按钮和选择选项的jQuery显示和隐藏divs

jQuery选择器如何选择页面中的所有单选按钮和多选按钮?