ChatGPT解决这个技术问题 Extra ChatGPT

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

我可以将单个按钮设置为罚款,但是我想做的是设置一种“侦听器”,该“侦听器”在检查某个广播按钮时会激活。

以下面的代码为例:

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

它添加了一个选中的属性,一切都很好,但是我将如何添加警报。例如,在没有点击功能的帮助下选中单选按钮时会弹出?

相关Monitoring when a radio button is unchecked stackoverflow.com/questions/5824639/…

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

答对了!谢谢大卫。那么我是否必须调用一个动作(点击等)来显示警报?有没有办法在不点击的情况下做到这一点?
这并不能解决“没有点击功能的帮助”,不是吗?
@Znarkus:OP 看起来很满意。你会争辩说你自己使用的 ('#radio_button').click 没有 click 吗?
@David 第二行应该是 if ($('#radio_button').is(':checked'))) { alert("it's checked"); } -您忘记了jQuery $ 符号,然后需要将其全部包装在更多括号中。
@zua:你是对的!它甚至有语法错误,就像以前一样(不匹配的括号)。固定的
T
Tehsmeely

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

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


这对我不起作用。如果我 alert($("input[@name='shipping_method']:checked").val());即使未选择单选按钮,它仍然给我价值。
注意:如果您有多个表单,其中包含使用相同名称的单选按钮组,您需要确保只检查提交的表单中的那些。一种选择是使用表单上的 find 方法:$('#myform').submit(function(event){ if (!$(this).find("input[name='name']:checked").val()) {
P
Patrick DaVader

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

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

这对我来说很好!


Z
Znarkus

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

N
Nanhe Kumar

//通过类检查

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         
}

S
Saeb Amini

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

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

事实上,.prop() 速度更快,而且更易于键入。
S
Shah-Kodes

该解决方案将很简单,因为检查某个广播按钮时,您只需要“侦听器”即可。这样做:-

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

T
Thyagarajan C

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

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

Working Jsfiddle Here


B
Bill Warren

...谢谢大家...我所需要的只是选中的单选按钮的“值”,其中集合中的每个单选按钮都有不同的ID ...

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

为我工作...


i
iCezz

如果您不想要点击功能,请使用 Jquery 更改功能

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

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


G
Gandhi

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

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

更改动态单选按钮

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

J
Jokerius

$('.radio-button-class-name').is('checked') 对我不起作用,但下一个代码运行良好:

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

由于您将它与类而不是 ID 一起使用,因此它会返回一个节点列表,而不是一个元素。 $('.radio-button-class-name').first().is(':checked') 应该有效。
M
Muhammad Aamir Ali

尝试这个

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

M
MaxWall

jQuery 仍然很流行,但如果你想没有依赖项,请参见下文。 Short & clear 函数来判断是否在 ES-2015 上选中了单选按钮:

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


当我尝试在堆栈溢出中运行您的代码片段时,iIt 似乎无法作为测试工作,您能否对其进行编辑以便我们可以轻松地尝试它。但是它似乎在我的项目上工作,非常感谢您。
O
Obot Ernest

ULTIMATE SOLUTION 检测是否已使用 onChang 方法检查单选按钮 JQUERY > 3.6

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

获取单击的单选按钮的值

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

w
wpercy

尝试这个:

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

d
designdust

这将适用于所有版本的 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) ; } } )


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

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

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

设置 checked 属性的值,而不是查询它。