2010-02-16 59 views
468

我可以设置一个单选按钮来检查是否正常,但我想要做的是设置一种“侦听器”,当某个单选按钮被选中时会激活。找出是否用JQuery检查单选按钮?

取,例如下面的代码:

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

它增加了一个检查属性,一切都很好,但我怎么会去 添加警报。例如,当单选按钮被检查 没有帮助点击功能时弹出?

+2

[检查特定单选按钮时是否可能出现重复](http://stackoverflow.com/questions/2195125/check-of-specific-radio-button-is-checked) – 2012-07-20 14:31:45

+1

related监视单选按钮未选中状态'http://stackoverflow.com/questions/5824639/monitoring-when-a-radio-button-is-unchecked – 2014-07-07 11:55:43

回答

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

宾果!谢谢大卫。所以我必须调用一个动作(点击等)来显示警报?有没有办法做到这一点,而不点击? – 2010-02-16 11:50:49

+0

好吧,你可以运行'is(':checked')'检查。所以如果你想在页面加载时显示某些内容,例如取决于是否选中复选框,则可以在页面加载时放入相同的if语句。 – 2010-02-16 11:56:19

+3

这不解决“没有点击功能的帮助”,是吗? – Znarkus 2010-02-16 11:58:39

28

您必须绑定复选框的单击事件,因为更改事件在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

针对IE警告的+1 – 2011-07-29 02:12:18

124

要检查这种情况是否一个单选按钮被选中,你可以做到这一点简单地通过下面的代码:

$(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

+0

这对我无效。如果我 alert($(“input [@ name ='shipping_method']:checked”)。val());即使未选中单选按钮,它仍然会给我值。 – AndrewC 2012-07-24 08:08:06

+14

好吧它工作..删除了@符号。 – AndrewC 2012-07-24 08:12:29

+1

注意:如果您有多组使用相同名称的单选按钮的表单,则需要确保仅检查提交表单的表单。这样做的一个选择是使用以下形式的find方法: '$('#myform')。submit(function(event){if(!$(this).find(“input [name ='name' ]:checked“)。val()){' – Benjamin 2015-05-08 10:35:00

6

如果您不想点击功能也 使用jQuery更改功能

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

这应该是您正在寻找的答案。 如果您使用的jquery版本高于1.9.1 尝试使用,因为现场功能已被弃用。

35

由于Parag的解决方案抛出错误对我来说,这里是我的解决方案(结合大卫Hedlund的年代和Parag的):

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

这对我工作得很好!

5

...谢谢家伙...我需要的是选中的单选按钮,其中组中的每个单选按钮有不同的ID的“价值” ......

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

为我工作。 ..

2

试试这个

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

//通过类检查

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   
} 
+1

什么是id?它只是radio [id ='id'] ...等... – 2015-02-20 19:51:49

8

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

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

确实'.prop()'要快得多,而且输入起来更简单。 – 2017-03-02 03:41:48

1

试试这个:

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

动态生成单选按钮检查收音机的价值

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

动态更改单选按钮

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

与所有类型的单选按钮和浏览器中工作

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

Working Jsfiddle Here

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

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

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

*设置* checked属性的值,而不是查询它。 – 2017-03-02 03:43:20

5

该解决方案将会很简单,因为当您检查某个单选按钮时,您只需要'听众'。做到这一点: -

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

$( '单选按钮类名。 ')是(' 检查'),我没有工作,但接下来的代码运行良好:

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