找出是否用JQuery检查了单选按钮?

时间:2010-02-16 11:33:09

标签: jquery html html5 jquery-ui checked

我可以设置一个单选按钮来检查正常,但我想要做的是设置一种“监听器”,当检查某个单选按钮时它会激活。

例如,使用以下代码:

$("#element").click(function()
{ 
    $('#radio_button').attr("checked", "checked");
});

它添加了一个已检查的属性,一切都很好,但我将如何进行 添加提醒。例如,选中单选按钮时会弹出 没有点击功能的帮助?

19 个答案:

答案 0 :(得分:993)

$('#element').click(function() {
   if($('#radio_button').is(':checked')) { alert("it's checked"); }
});

答案 1 :(得分:140)

如果您有一组共用相同名称属性的单选按钮,并且在提交或某些事件时您要检查其中一个单选按钮是否已选中,则可以通过以下代码执行此操作:

$(document).ready(function(){
  $('#submit_button').click(function() {
    if (!$("input[name='name']:checked").val()) {
       alert('Nothing is checked!');
        return false;
    }
    else {
      alert('One of the radio buttons is checked!');
    }
  });
});

Source

jQuery API Ref

答案 2 :(得分:38)

由于Parag的解决方案给我一个错误,这是我的解决方案(结合David Hedlund和Parag的):

if (!$("input[name='name']").is(':checked')) {
   alert('Nothing is checked!');
}
else {
   alert('One of the radio buttons is checked!');
}

这对我来说很好!

答案 3 :(得分:31)

您必须绑定复选框的click事件,因为更改事件在IE中不起作用。

$('#radio_button').click(function(){
    // if ($(this).is(':checked')) alert('is checked'); 
    alert('check-checky-check was changed');
});

现在,当您以编程方式更改状态时,您还必须触发此事件:

$('#radio_button').attr("checked", "checked");
$('#radio_button').click();

答案 4 :(得分:18)

//通过课程检查

if($("input:radio[class='className']").is(":checked")) {
     //write your code         
}

//检查名称

if($("input:radio[name='Name']").is(":checked")) {
         //write your code         
}

//检查数据

if($("input:radio[data-name='value']").is(":checked")) {
         //write your code         
}

答案 5 :(得分:9)

另一种方法是使用prop (jQuery> = 1.6)

$("input[type=radio]").click(function () {
    if($(this).prop("checked")) { alert("checked!"); }
});

答案 6 :(得分:9)

解决方案很简单,因为在选中某个单选按钮时你只需要'听众'。这样做: -

if($('#yourRadioButtonId').is(':checked')){ 
// Do your listener's stuff here. 
}

答案 7 :(得分:6)

如果您不想要点击功能 使用Jquery更改函数

$('#radio_button :checked').live('change',function(){
alert('Something is checked.');
});

这应该是您正在寻找的答案。 如果你使用的是1.9.1以上的Jquery版本 尝试使用on作为实时功能已被弃用。

答案 8 :(得分:5)

...谢谢你们......我需要的只是所选单选按钮的'价值',其中集合中的每个单选按钮都有不同的ID ...

 var user_cat = $("input[name='user_cat']:checked").val();

适合我...

答案 9 :(得分:4)

使用所有类型的单选按钮和浏览器

if($('#radio_button_id')[0].checked) {
   alert("radiobutton checked")
}
else{
   alert("not checked");
}

Working Jsfiddle Here

答案 10 :(得分:3)

动态生成单选按钮检查无线电获取值

$("input:radio[name=radiobuttonname:checked").val();
  

更改动态单选按钮

$('input[name^="radioname"]').change(function () {if (this.value == 2) { }else{}});

答案 11 :(得分:2)

终极解决方案 使用 onChang 方法检测单选按钮是否已被选中 查询 > 3.6

         $('input[type=radio][name=YourRadioName]').change(()=>{
             alert("Hello"); });

获取单击的单选按钮的值

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

答案 12 :(得分:2)

$(&#39; .radio-button-class-name&#39;)。(&#39;已检查&#39;)对我没用,但下一个代码效果很好:< / p>

    if(typeof $('.radio-button-class-name:checked').val() !== 'undefined'){
     // radio button is checked
    }

答案 13 :(得分:2)

试试这个

    if($('input[name="radiobutton"]:checked').length == 0) {
        alert("Radio buttons are not checked");
    }

答案 14 :(得分:1)

试试这个:

alert($('#radiobutton')[0].checked)

答案 15 :(得分:1)

这将在所有版本的jquery中使用。

//-- Check if there's no checked radio button
if ($('#radio_button').is(':checked') === false ) {
  //-- if none, Do something here    
}

在选中某个单选按钮时激活某些功能。

// get it from your form or parent id
    if ($('#your_form').find('[name="radio_name"]').is(':checked') === false ) {
      $('#your_form').find('[name="radio_name"]').filter('[value=' + checked_value + ']').prop('checked', true);
    }

您的html

$('document').ready(function() {
var checked_value = 'checked';
  if($("#your_form").find('[name="radio_name"]').is(":checked") === false) {
      $("#your_form")
        .find('[name="radio_name"]')
        .filter("[value=" + checked_value + "]")
        .prop("checked", true);
    }
  }
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="" id="your_form">
  <input id="user" name="radio_name" type="radio" value="checked">
        <label for="user">user</label>
  <input id="admin" name="radio_name" type="radio" value="not_this_one">
    <label for="admin">Admin</label>
</form>

答案 16 :(得分:0)

jQuery仍然很流行,但是如果您希望没有依赖项,请参见下文。 短路和清除功能,用于确定ES-2015上的单选按钮是否已选中:

function getValueFromRadioButton( name ){
  return [...document.getElementsByName(name)]
         .reduce( (rez, btn) => (btn.checked ? btn.value : rez), null)
}

console.log( getValueFromRadioButton('payment') );
<div>  
  <input type="radio" name="payment" value="offline">
  <input type="radio" name="payment" value="online">
  <input type="radio" name="payment" value="part" checked>
  <input type="radio" name="payment" value="free">
</div>

答案 17 :(得分:0)

function getValueFromRadioButton( name ){
  return [...document.getElementsByName(name)]
         .reduce( (rez, btn) => (btn.checked ? btn.value : rez), null)
}

console.log( getValueFromRadioButton('payment') );
<div>  
  <input type="radio" name="payment" value="offline">
  <input type="radio" name="payment" value="online">
  <input type="radio" name="payment" value="part" checked>
  <input type="radio" name="payment" value="free">
</div>

答案 18 :(得分:-3)

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

对于1.6之前的jQuery版本,请使用:

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