单选按钮检查事件处理

Posted

技术标签:

【中文标题】单选按钮检查事件处理【英文标题】:Radio button checked event handling 【发布时间】:2011-02-13 11:29:17 【问题描述】:

In my application, I need a radio group, in which whenever a radio-button is checked, an alert occur so that I can post it's value to ajax post with jQuery.

你能帮我吗,请问我如何在 jQuery 中做到这一点?

【问题讨论】:

【参考方案1】:

你可以简单地使用JQuery的change方法来获取当前单选的值,代码如下:

$(document).on('change', '[type="radio"]', function() 
    var currentlyValue = $(this).val(); // Get the radio checked value
        
    alert('Currently value: '+currentlyValue); // Show a alert with the current value
);

您可以将选择器 '[type="radio"]' 更改为您想要的类或 ID。

【讨论】:

【参考方案2】:
$(document).on('change','.radio-button', function()

    const radio = $(this);

    if (radio.is(':checked')) 
      console.log(radio)
    

);

【讨论】:

【参考方案3】:
$("#expires1").click(function()
     if (this.checked)
        alert("testing....");
);

【讨论】:

尽管这可能是正确的,但没有解释为什么它是答案,它不会教任何东西。对于超过 8 年的问题,这根本没有帮助。【参考方案4】:

2017 年更新:嘿。这是一个可怕的答案。不要使用它。在过去,这种类型的 jQuery 使用很常见。它可能在当时有效。只需阅读它,意识到它很糟糕,然后继续(或投反对票或其他任何方式)对今天的 jQuery 更好的其他答案之一。


$("input[type=radio]").change(function()
    alert( $("input[type=radio][name="+ this.name + "]").val() );
);

【讨论】:

你能做到$(this).val()吗? 我花了一段时间才明白$("input[type=radio][name="+ this.name + "]").val() 在这里做什么。您能否编辑您的帖子并将其更改为alert( $(this).val() ); 我想这是投反对票的原因。 @Applejack :不要更改正确的内容,只需添加另一个内容。这是比alert( $(this).val() ); 更好的答案 $.change() 在取消选中收音机时不会调用。这个功能真的是onCheck。 同意苹果杰克,答案应该改变(或者因为它是错误的而被遗忘;-))。请参阅:plnkr.co/edit/563jmzFvukpqHlA0HnvC?p=preview。它会在检查更改发生时触发,但始终会产生相同的值。【参考方案5】:

html 代码:

<input type="radio" name="theName" value="1" id="option-1">
<input type="radio" name="theName" value="2">
<input type="radio" name="theName" value="3">

javascript 代码:

$(document).ready(function()
    $('input[name="theName"]').change(function()
        if($('#option-1').prop('checked'))
            alert('Option 1 is checked!');
        else
            alert('Option 1 is unchecked!');
        
    );
);

在名称为“theName”的多个收音机中,检测选项 1 何时被选中或未选中。适用于所有情况:点击控制、使用键盘、使用操纵杆、自动更改其他动态功能的值等。

【讨论】:

【参考方案6】:

试试这样的:

$(function()
  $('input[type="radio"]').click(function()
    if ($(this).is(':checked'))
    
      alert($(this).val());
    
  );
);

如果你给你的单选按钮一个类,那么你可以用$('.someclass')替换代码$('input[type="radio"]')

【讨论】:

@David Murdoch:没错,不过你可以使用change $.click() 在使用键盘或其他控件操作表单控件时不会调用。点击功能并非在所有情况下都有效。

以上是关于单选按钮检查事件处理的主要内容,如果未能解决你的问题,请参考以下文章

使用 onChange 事件处理单选按钮选择

删除对单选按钮 jQuery 的检查

Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?

如何只允许检查一个单选按钮,然后能够在 PHP 中处理它?

单选按钮触发事件下拉列表触发事件

C# 中带有单选按钮的 groupBox 的事件处理程序