2010-11-09 114 views
5

如何确定我的单选按钮是否被选中?JQuery:如何确定单选按钮是否被选中?

例如:

if (radio_button_selected) { 

// do something 

} else { 

// do something else 

} 
+0

这个问题之前无数次被问。在提问之前请先搜索答案。 http://stackoverflow.com/questions/4138300/validating-a-form-with-a-radio-button/4138350#4138350 – zzzzBov 2010-11-09 22:25:58

回答

7

您可以使用此选择,以确定是否被检查:

jQuery("input[name='my_button_group']:checked") 

因此,例如:

if (jQuery("input[name='my_button_group']:checked")) { 
    ... 
} 
else { 
    ... 
} 
+0

为什么我需要**。length> 0 **? – StaceyH 2010-11-09 22:09:56

+0

@StaceyH - 你不用JavaScript,但这比其他答案(因为输入)要快得多。 – 2010-11-09 22:10:57

+0

@Nick Craver ...不能确定你是否可以在我的帖子中看到我的评论..但是看一看 – 2010-11-09 22:17:37

1
if ($("input[name='yourRadioName']:radio:checked").length) { 
} else { 
} 
+0

@Nick Craver ... Justin的方法与我的方法有所不同。 ':radio'确保选中一个单选按钮,而不仅仅是名称为“yourRadioName”的任何检查输入。但是,您正确使用输入会更快地执行。 – 2010-11-09 22:16:45

1

如果你有您的单选按钮rb已经通过其他方式选择,你可以这样做:

var rb = $('whatever selector'); 

// other code 

if (rb.is(':checked')) 
{ 
    // code 
} 
+0

+1能够重新使用rb代码中的其他内容(例如获取val()) – Ben 2010-11-09 22:13:56

+0

@jelbourn'rb.checked'是更好的选择 - 它更快,更具可读性。 – 2010-11-09 23:05:12

+0

@ŠimeVidas:'checked'不是jquery列表对象的属性。实际的DOM对象具有'checked'属性。 – jelbourn 2010-11-10 14:24:54

1

如果必须元素的引用已经,您可以使用它checked属性:

$('input[type=radio]').focus(function(){ 
    // "this" is the element that was clicked 

    if (this.checked) { 
     // do something 
    } else { 
     // do something else 
    } 
}); 
+1

这不是没有意义的,因为如果用户“点击”了一个单选按钮,它总是会被“检查”,因此您永远不会在 – StaceyH 2010-11-09 22:17:04

+0

@StaceyH之上达到ELSE条件。点。改为“重点”来说明我的观点。 – lonesomeday 2010-11-09 22:30:51

相关问题