如何使用jQuery检查单选按钮?

时间:2011-04-14 15:47:52

标签: javascript jquery forms radio-button

我尝试用jQuery检查单选按钮。这是我的代码:

<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>

JavaScript:

jQuery("#radio_1").attr('checked', true);

不起作用:

jQuery("input[value='1']").attr('checked', true);

不起作用:

jQuery('input:radio[name="type"]').filter('[value="1"]').attr('checked', true);

不起作用:

你有另一个想法吗?我错过了什么?

34 个答案:

答案 0 :(得分:1355)

对于等于或高于(> =)1.6的jQuery版本,请使用:

$("#radio_1").prop("checked", true);

对于(&lt;)1.6之前的版本,请使用:

$("#radio_1").attr('checked', 'checked');

提示:您可能还想在之后的单选按钮上调用click()change()有关详细信息,请参阅评论。

答案 1 :(得分:223)

试试这个。

在这个例子中,我用它的输入名称和值

来定位它
$("input[name=background][value='some value']").prop("checked",true);

很高兴知道:在多字值的情况下,它也会因为撇号而起作用。

答案 2 :(得分:93)

jQuery 1.6中添加的另一个函数prop(),用于相同的目的。

$("#radio_1").prop("checked", true); 

答案 3 :(得分:75)

简短易读的选项:

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

它返回true或false,因此您可以在“if”语句中使用它。

答案 4 :(得分:28)

试试这个。

要使用 检查单选按钮,请使用此功能。

$('input[name=type][value=2]').attr('checked', true); 

或者

$('input[name=type][value=2]').attr('checked', 'checked');

或者

$('input[name=type][value=2]').prop('checked', 'checked');

要使用 ID 检查单选按钮,请使用此功能。

$('#radio_1').attr('checked','checked');

或者

$('#radio_1').prop('checked','checked');

答案 5 :(得分:12)

$.prop方式更好:

$(document).ready(function () {                            
    $("#radio_1").prop('checked', true);        
});

你可以测试它如下:

$(document).ready(function () {                            
    $("#radio_1, #radio_2", "#radio_3").change(function () {
        if ($("#radio_1").is(":checked")) {
            $('#div1').show();
        }
        else if ($("#radio_2").is(":checked")) {
            $('#div2').show();
        }
        else 
            $('#div3').show();
    });        
});

答案 6 :(得分:11)

试试这个:

$("input[name=type]").val(['1']);

http://jsfiddle.net/nwo706xw/

答案 7 :(得分:8)

你必须做

jQuery("#radio_1").attr('checked', 'checked');

这是HTML属性

答案 8 :(得分:6)

使用 prop()方法

enter image description here

来源Link

<p>
    <h5>Radio Selection</h5>

    <label>
        <input type="radio" name="myRadio" value="1"> Option 1
    </label>
    <label>
        <input type="radio" name="myRadio" value="2"> Option 2
    </label>
    <label>
        <input type="radio" name="myRadio" value="3"> Option 3
    </label>
</p>

<p>
    <button>Check Radio Option 2</button>
</p>


<script>
    $(function () {

        $("button").click(function () {
            $("input:radio[value='2']").prop('checked',true);
        });

    });
</script>

答案 9 :(得分:5)

是的,它对我有用:

$("#radio_1").attr('checked', 'checked');

答案 10 :(得分:5)

如果属性name不起作用,请不要忘记id仍然存在。这个答案适用于那些希望以id为目标的人。

$('input[id=element_id][value=element_value]').prop("checked",true);

因为属性name对我不起作用。确保您没有使用双/单引号括起idname

干杯!

答案 11 :(得分:5)

$("input[name=inputname]:radio").click(function() {
    if($(this).attr("value")=="yes") {
        $(".inputclassname").show();
    }
    if($(this).attr("value")=="no") {
        $(".inputclassname").hide();
    }
});

答案 12 :(得分:4)

如果有人在使用jQuery UI时尝试实现此目的,您还需要刷新UI复选框对象以反映更新的值:

$("#option2").prop("checked", true); // Check id option2
$("input[name='radio_options']").button("refresh"); // Refresh button set

答案 13 :(得分:4)

我们应该告诉它是radio按钮。所以请尝试使用以下代码。

$("input[type='radio'][name='userRadionButtonName']").prop('checked', true);

答案 14 :(得分:3)

获取价值:

$("[name='type'][checked]").attr("value");

设定值:

$(this).attr({"checked":true}).prop({"checked":true});

单选按钮单击添加attr checked:

$("[name='type']").click(function(){
  $("[name='type']").removeAttr("checked");
  $(this).attr({"checked":true}).prop({"checked":true});
});

答案 15 :(得分:3)

尝试使用示例

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm">
<input type="radio" name="radio" value="first"/> 1 <br/>
<input type="radio" name="radio" value="second"/> 2 <br/>
</form>


<script>
$(document).ready(function () {
    $('#myForm').on('click', function () {
        var value = $("[name=radio]:checked").val();

        alert(value);
    })
});
</script>

答案 16 :(得分:3)

试试这个

var isChecked = $("#radio_1")[0].checked;

答案 17 :(得分:2)

试试这个

$(document).ready(function(){
    $("input[name='type']:radio").change(function(){
        if($(this).val() == '1')
        {
          // do something
        }
        else if($(this).val() == '2')
        {
          // do something
        }
        else if($(this).val() == '3')
        {
          // do something
        }
    });
});

答案 18 :(得分:2)

我有一些相关的例子要加强,如果我想添加一个新条件怎么样,让我们​​说,如果我想点击项目状态值除了摊铺机和铺路板之后隐藏颜色方案。

示例在这里:

$(function () {
    $('#CostAnalysis input[type=radio]').click(function () {
        var value = $(this).val();

        if (value == "Supply & Lay") {
            $('#ul-suplay').empty();
            $('#ul-suplay').append('<fieldset data-role="controlgroup"> \

http://jsfiddle.net/m7hg2p94/4/

答案 19 :(得分:2)

我使用此代码:

我很抱歉英语。

var $j = jQuery.noConflict();

$j(function() {
    // add handler
    $j('#radio-1, #radio-2').click(function(){

        // find all checked and cancel checked
        $j('input:radio:checked').prop('checked', false);

        // this radio add cheked
        $j(this).prop('checked', true);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<fieldset class="section">
  <legend>Radio buttons</legend>
  <label>
    <input type="radio" id="radio-1" checked>
    Option one is this and that&mdash;be sure to include why it's great
  </label>
  <br>
  <label>
    <input type="radio" id="radio-2">
    Option two can be something else
  </label>
</fieldset>

答案 20 :(得分:2)

我使用了 jquery-1.11.3.js

基本启用和禁用

  

提示1 :(单选按钮类型常见的“禁用和启用”)

$("input[type=radio]").attr('disabled', false);
$("input[type=radio]").attr('disabled', true); 
  

提示2 :(使用prop()或attr()的ID选择器)

$("#paytmradio").prop("checked", true);
$("#sbiradio").prop("checked", false);

jQuery("#paytmradio").attr('checked', 'checked'); // or true this won't work
jQuery("#sbiradio").attr('checked', false);
  

提示3 :(使用prop()或arrt()的类选择器)

$(".paytm").prop("checked", true);
$(".sbi").prop("checked", false);

jQuery(".paytm").attr('checked', 'checked'); // or true
jQuery(".sbi").attr('checked', false);
  

其他提示

$("#paytmradio").is(":checked")   // Checking is checked or not
$(':radio:not(:checked)').attr('disabled', true); // All not check radio button disabled

$('input[name=payment_type][value=1]').attr('checked', 'checked'); //input type via checked
 $("input:checked", "#paytmradio").val() // get the checked value

index.html

<div class="col-md-6">      
    <label class="control-label" for="paymenttype">Payment Type <span style="color:red">*</span></label>
    <div id="paymenttype" class="form-group" style="padding-top: inherit;">
        <label class="radio-inline" class="form-control"><input  type="radio" id="paytmradio"  class="paytm" name="paymenttype" value="1" onclick="document.getElementById('paymentFrm').action='paytmTest.php';">PayTM</label>
        <label class="radio-inline" class="form-control"><input  type="radio" id="sbiradio" class="sbi" name="paymenttype" value="2" onclick="document.getElementById('paymentFrm').action='sbiTest.php';">SBI ePAY</label>
    </div>
</div>

答案 21 :(得分:1)

我有一个类似的问题,一个简单的解决方案就是使用:

.click()

如果在调用函数后刷新无线电,任何其他解决方案都将有效。

答案 22 :(得分:1)

function rbcitiSelction(e) {
     debugger
    $('#trpersonalemail').hide();
    $('#trcitiemail').show();
}

function rbpersSelction(e) {
    var personalEmail = $(e).val();
    $('#trpersonalemail').show();
    $('#trcitiemail').hide();
}

$(function() {  
    $("#citiEmail").prop("checked", true)
});

答案 23 :(得分:1)

试试这个

 $("input:checked", "#radioButton").val()

如果选中则返回True 如果未选中,则返回False

jQuery v1.10.1

答案 24 :(得分:1)

令人惊讶的是,尽管有评论,但最流行和最受欢迎的答案忽略了触发适当的事件。 确保您调用 .change(),否则所有“更改时”绑定都将忽略此事件。

$("#radio_1").prop("checked", true).change();

答案 25 :(得分:0)

感谢a comment中的Paul LeBeau。我以为我会把它写成一个正确的答案,因为令人惊讶的是没有答案。

对我而言唯一有效的方法(jQuery 1.12.4,Chrome 86)是:

$(".js-my-radio-button").trigger("click");

这可以完成我想要的一切–更改单选按钮的外观(在视觉上和编程上都如此)并触发单选按钮上的事件,例如change

仅将“已检查”属性设置为其他答案提示,就不会更改为我选择的单选按钮。

答案 26 :(得分:0)

$("#radio_1").attr('checked', true);
//or
$("#radio_1").attr('checked', 'checked');

答案 27 :(得分:0)

如果您不想为这种简单的事情包括像jQuery这样的大库,这是使用内置DOM方法的替代解决方案:

// Check checkbox by id:
document.querySelector('#radio_1').checked = true;

// Check checkbox by value:
document.querySelector('#type > [value="1"]').checked = true;

// If this is the only input with a value of 1 on the page, you can leave out the #type >
document.querySelector('[value="1"]').checked = true;
<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>

答案 28 :(得分:0)

此外,您还可以检查元素是否已选中:

if ($('.myCheckbox').attr('checked'))
{
   //do others stuff
}
else
{
   //do others stuff
}

您可以检查未选中的元素:

$('.myCheckbox').attr('checked',true) //Standards way

您也可以取消选中此方式:

$('.myCheckbox').removeAttr('checked')
  

您可以检查单选按钮:

对于等于或大于(> =)1.6的jQuery版本,请使用:

$("#radio_1").prop("checked", true);

对于(<)1.6之前的版本,请使用:

$("#radio_1").attr('checked', 'checked');

答案 29 :(得分:0)

attr接受两个字符串。

正确的方法是:

jQuery("#radio_1").attr('checked', 'true');

答案 30 :(得分:0)

attr接受两个字符串。

正确的方法是:

jQuery("#radio_1").attr('checked', 'true');

答案 31 :(得分:0)

试试这个:

$(document).ready(function(){
  $("#Id").prop("checked", true).checkboxradio('refresh');
});

答案 32 :(得分:0)

以上解决方案有时无效,您可以尝试以下方法:

jQuery.uniform.update(jQuery("#yourElementID").attr('checked',true));
jQuery.uniform.update(jQuery("#yourElementID").attr('checked',false));

您可以尝试的另一种方式是:

jQuery("input:radio[name=yourElementName]:nth(0)").attr('checked',true);

答案 33 :(得分:-1)

纯JS更简单

radio_1.checked

checkBtn.onclick = e=> console.log( radio_1.checked );
<!-- Question html -->
<form>
    <div id='type'>
        <input type='radio' id='radio_1' name='type' value='1' />
        <input type='radio' id='radio_2' name='type' value='2' />
        <input type='radio' id='radio_3' name='type' value='3' /> 
    </div>
</form>

<!-- Test html -->
<button id="checkBtn">Check</button>