javascript - 单选按钮上的 onchange 事件

标签 javascript jquery html onchange

我正在尝试实现一些简单的事情。基本上我有 3 个单选按钮组,并且在更改其中任一组时,我想获取所有单选按钮组的值并显示在警报框中。

我的代码如下

html

<input type="radio" name="ac" value="yes"> YES
<input type="radio" name="ac" value="no"> NO
<br>
<input type="radio" name="tier" value="normal"> normal
<input type="radio" name="tier" value="deluxe"> deluxe
<br>
<input type="radio" name="cap" value="big"> big
<input type="radio" name="cap" value="small"> small

js

$("input[type=radio]").on("change",function(){
    var ac=$("input[type=radio][name=ac]").val();
    var tier=$("input[type=radio][name=tier]").val();
    var cap=$("input[type=radio][name=cap]").val();

    alert(ac+" "+tier+" "+cap);
});

我这里也有一个jsfiddle https://jsfiddle.net/5fg6by8m/

在 fiddle 上,似乎事件根本没有触发,而在我的本地服务器上使用 mozilla 浏览时,我总是在警报框中获得每组第一个项目的值(是的,正常大)。我可能犯了一些愚蠢的错误。请帮我纠正这个问题。

提前致谢...

编辑 纠正 fiddle https://jsfiddle.net/5fg6by8m/4/

最佳答案

您可以使用下面的代码。你必须使用 :checked psudo 选择器

$(document).on("change","input[type=radio]",function(){
    var ac=$('[name="ac"]:checked').val();
    var tier= $('[name="tier"]:checked').length>0? $('[name="tier"]:checked').val():"";
    var cap=$('[name="cap"]:checked').length>0 ?$('[name="cap"]:checked').val():"";

    alert(ac+" "+tier+" "+cap);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<input type="radio" name="ac" value="yes"> YES
<input type="radio" name="ac" value="no"> NO
<br>
<input type="radio" name="tier" value="normal"> normal
<input type="radio" name="tier" value="deluxe"> deluxe
<br>
<input type="radio" name="cap" value="big"> big
<input type="radio" name="cap" value="small"> small

关于javascript - 单选按钮上的 onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571634/

相关文章:

javascript - 带有 DynamoDB 的 NodeJS 抛出错误 "AttributeValue may not contain an empty string"

javascript - 为什么我们必须对数组进行字符串化而不是对请求的对象进行字符串化?

javascript - 在 PHP 和 JavaScript 中打印月份名称而不是月份编号

javascript - 我的 javascript 文件中的 jquery 函数没有被调用

jquery - 为简单的 jQuery AJAX 导航添加历史记录支持

javascript - 为什么我不能在函数内设置 JavaScript 原型(prototype)?

javascript - Three.js 未在 Vue.js 中渲染

html - Bootstrap 菜单列表项下拉列表不是按钮

android - 如何将列表项内的跨度居中

java - 从字符串中删除 HTML - RSS