ChatGPT解决这个技术问题 Extra ChatGPT

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

我有两个单选按钮,想发布所选单选按钮的值。如何使用 jQuery 获得价值?

我可以像这样得到所有这些:

$("form :radio")

我怎么知道选择了哪一个?


A
Andy

要获取 ID 为 myForm 的表单的 selected radioName 项的值:

$('input[name=radioName]:checked', '#myForm').val()

这是一个例子:

$('#myForm input').on('change', function() { alert($('input[name=radioName]:checked', '#myForm').val()); });

选择radioName


< /fieldset>


只是要添加这个,因为它可能会帮助某人。如果收音机的名称带有方括号,例如 radioName[0](有时在 Wordpress 中使用),您将需要在名称周围使用引号,例如 input[name='radioName[0]']:checked
请注意,在 onChange 方法示例中,您还可以使用 this.value 代替 $('input[name=radioName]:checked', '#myForm').val() :)
对于非 jquery 版本,请参见此处:jsfiddle.net/2y76vp1e
@ ZeroNine,我使用的 Symfony 框架也是如此。
J
Joberror

用这个..

$("#myform input[type='radio']:checked").val();

D
Daniel Marín

如果您已经引用了单选按钮组,例如:

var myRadio = $("input[name=myRadio]");

使用 filter() 函数,而不是 find()。 (find() 用于定位子/后代元素,而 filter() 在您的选择中搜索顶级元素。)

var checkedValue = myRadio.filter(":checked").val();

注意:此答案最初是为了纠正另一个建议使用 find() 的答案,该答案似乎已被更改。 find() 在您已经引用了容器元素但没有引用单选按钮的情况下仍然有用,例如:

var form = $("#mainForm");
...
var checkedValue = form.find("input[name=myRadio]:checked").val();

C
Cam Tullos

这应该有效:

$("input[name='radioName']:checked").val()

注意输入周围使用的“”:检查而不是像彼得J的解决方案那样的“”


为什么这会返回“on”而不是所选单选按钮的值?
t
tvanfosson

您可以将 :checked 选择器与单选选择器一起使用。

 $("form:radio:checked").val();

这看起来不错,但是,jQuery documentation 建议使用 [type=radio] 而不是 :radio 以获得更好的性能。这是可读性和性能之间的权衡。在这些琐碎的事情上,我通常将可读性置于性能之上,但在这种情况下,我认为 [type=radio] 实际上更清晰。所以在这种情况下,它看起来像 $("form input[type=radio]:checked").val()。虽然仍然是一个有效的答案。
J
Juan

如果您只想要布尔值,即是否已检查,请尝试以下操作:

$("#Myradio").is(":checked")

A
Alex V

获取所有收音机:

var radios = jQuery("input[type='radio']");

过滤以获取选中的那个

radios.filter(":checked")

R
RedDragon

另一种选择是:

$('input[name=radioName]:checked').val()

":radio" 部分在这里不是必需的。
C
Code Maverick
$("input:radio:checked").val();

O
Olivier Pons

就我而言,我在一种形式中有两个单选按钮,我想知道每个按钮的状态。这对我有用:

// 获取单选按钮值 console.log( "radio1: " + $('input[id=radio1]:checked', '#toggle-form').val() ); console.log("radio2:" + $('input[id=radio2]:checked', '#toggle-form').val());


每个按钮的状态是什么意思?同名的单选按钮只允许选中一个,因此,如果您选中了一个,则其余的都未选中。
D
Darin Peterson

以下是我将如何编写表单并处理检查收音机的获取。

使用名为 myForm 的表单:

<form id='myForm'>
    <input type='radio' name='radio1' class='radio1' value='val1' />
    <input type='radio' name='radio1' class='radio1' value='val2' />
    ...
</form>

从表单中获取值:

$('#myForm .radio1:checked').val();

如果您不发布表格,我会使用以下方法进一步简化它:

<input type='radio' class='radio1' value='val1' />
<input type='radio' class='radio1' value='val2' />

然后获取检查值变为:

    $('.radio1:checked').val();

在输入上有一个类名可以让我轻松地为输入设置样式......


F
Francisco Alvarado

JSF 生成的单选按钮(使用 <h:selectOneRadio> 标记)中,您可以这样做:

radiobuttonvalue = jQuery("input[name='form_id\:radiobutton_id']:checked").val();

其中 selectOneRadio ID 是 radiobutton_id,表单 ID 是 form_id。

一定要使用名称而不是 id,如所示,因为 jQuery 使用此属性(名称由 JSF 自动生成,类似于控件 ID)。


e
epascarello

另外,检查用户是否没有选择任何内容。

var radioanswer = 'none';
if ($('input[name=myRadio]:checked').val() != null) {           
   radioanswer = $('input[name=myRadio]:checked').val();
}

s
swiftBoy

如果您有多个单一形式的单选按钮,那么

var myRadio1 = $('input[name=radioButtonName1]');
var value1 = myRadio1.filter(':checked').val();

var myRadio2 = $('input[name=radioButtonName2]');
var value2 = myRadio2.filter(':checked').val();

这对我有用。


J
JGrinon

我编写了一个用于设置和获取单选按钮值的 jQuery 插件。它还尊重他们身上的“改变”事件。

(function ($) {

    function changeRadioButton(element, value) {
        var name = $(element).attr("name");
        $("[type=radio][name=" + name + "]:checked").removeAttr("checked");
        $("[type=radio][name=" + name + "][value=" + value + "]").attr("checked", "checked");
        $("[type=radio][name=" + name + "]:checked").change();
    }

    function getRadioButton(element) {
        var name = $(element).attr("name");
        return $("[type=radio][name=" + name + "]:checked").attr("value");
    }

    var originalVal = $.fn.val;
    $.fn.val = function(value) {

        //is it a radio button? treat it differently.
        if($(this).is("[type=radio]")) {

            if (typeof value != 'undefined') {

                //setter
                changeRadioButton(this, value);
                return $(this);

            } else {

                //getter
                return getRadioButton(this);

            }

        } else {

            //it wasn't a radio button - let's call the default val function.
            if (typeof value != 'undefined') {
                return originalVal.call(this, value);
            } else {
                return originalVal.call(this);
            }

        }
    };
})(jQuery);

将代码放在任何地方以启用插件。那就尽情享受吧!它只是覆盖默认的 val 函数而不破坏任何东西。

你可以访问这个 jsFiddle 来尝试它,看看它是如何工作的。

Fiddle


T
Tisho
 $(".Stat").click(function () {
     var rdbVal1 = $("input[name$=S]:checked").val();
 }

M
Manoj

这工作正常

$('input[type="radio"][class="className"]:checked').val()

Working Demo

:checked 选择器适用于 checkboxesradio buttons 和选择元素。仅对于选择元素,请使用 :selected 选择器。

API for :checked Selector


S
Samsul Islam

试试这个。它对我有用

$('input[type="radio"][name="name"]:checked').val();

R
Rodrigo Dias

要获取使用类的选定无线电的值:

$('.class:checked').val()

L
Lafif Astahdziq

我使用这个简单的脚本

$('input[name="myRadio"]').on('change', function() {
  var radioValue = $('input[name="myRadio"]:checked').val();        
  alert(radioValue); 
});

如果您希望它在所有浏览器中工作,请使用 click 事件而不是 change 事件
a
atiquratik

用这个:

value = $('input[name=button-name]:checked').val();

M
Mehdi Bouzidi

演示https://jsfiddle.net/ipsjolly/xygr065w/

$(function(){ $("#submit").click(function(){ alert($('input:radio:checked').val()); }); });

促销活动 1 2< /td> 3 4 5
R
Randy Greencorn

如果您在 1 个表单上只有一组单选按钮,则 jQuery 代码就像这样简单:

$( "input:checked" ).val()

M
Milap

我已经发布了一个库来帮助解决这个问题。实际上,拉出所有可能的输入值,但还包括选中了哪个单选按钮。您可以在 https://github.com/mazondo/formalizedata 上查看

它会给你一个答案的 js 对象,所以形式如下:

<form>
<input type="radio" name"favorite-color" value="blue" checked> Blue
<input type="radio" name="favorite-color" value="red"> Red
</form>

会给你:

$("form").formalizeData()
{
  "favorite-color" : "blue"
}

I
Iyyappan Amirthalingam

JQuery 获取表单中的所有单选按钮和选中的值。

$.each($("input[type='radio']").filter(":checked"), function () {
  console.log("Name:" + this.name);
  console.log("Value:" + $(this).val());
});

M
Milap

要检索 JavaScript 数组中的所有单选按钮值,请使用以下 jQuery 代码:

var values = jQuery('input:checkbox:checked.group1').map(function () {
    return this.value;
}).get();

单选按钮与复选框不同。此示例使用复选框。
G
Gautam Rai

试试看-

var radioVal = $("#myform").find("input[type='radio']:checked").val();

console.log(radioVal);

M
Mehdi Bouzidi

另一种获取方式:

$("#myForm input[type=radio]").on("change",function(){ if(this.checked) { alert(this.value); } });

<输入类型="radio" name="q12_3" value="1">1
2 < /表格>


J
JoshYates1980
$(function () {
// Someone has clicked one of the radio buttons
var myform= 'form.myform';
$(myform).click(function () {
    var radValue= "";
    $(this).find('input[type=radio]:checked').each(function () {
        radValue= $(this).val();
    });
  })
});

K
Kamil Kiełczewski

尝试

myForm.myOption.value

功能检查() { console.log( myForm.myOption.value ); } 1
2
3