触发按钮选择单选按钮时单击

时间:2018-08-11 02:26:55

标签: javascript jquery radio-button

我有两个单选按钮,当我选择一个单选按钮(例如:id =一个)时,单击按钮将显示警报(“一个”)。 这是我的代码

<input type="radio" name="test" value="one" id="one">one
<input type="radio" name="test" value="two" id="two">two
<button id="click">Click</button>

和我的JS

$("#click").click(function(){
  if($('input[type="radio"]').attr('id') == 'one'){
    alert ("one")
  } else{
    alert("two")
  }
})

我的问题是为什么警报二不显示?有什么身体帮助吗?谢谢 http://jsfiddle.net/dedi_wibisono17/gydrw291/10/

1 个答案:

答案 0 :(得分:2)

请参见.attr上的the docs

  

.attr()方法仅获取匹配集中第一个元素的属性值。要单独获取每个元素的值,请使用循环结构...

因为您的选择器

input[type="radio"]

将始终返回前面包含#one元素的集合,您的if语句将始终求值为true

要解决此问题,请让您的选择器字符串仅选择选定的单选按钮-因此,也请使用:checked伪选择器:

$("#click").click(function() {
  if ($('input[type="radio"]:checked').attr('id') == 'one') {
    alert("one")
  } else {
    alert("two")
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="test" value="one" id="one">one
<input type="radio" name="test" value="two" id="two">two
<button id="click">Click</button>