如何使用同名元素的值

时间:2018-11-19 09:54:38

标签: javascript jquery html

我试图弄清楚如何仅在单击“是”单选按钮时使用Jquery来警告“文本”。

我的代码存在问题,就是单击“否”按钮时也会显示警报。

如您所见,我还添加了一个带有注释的复选框,以使其清晰可见。

如果可以,请帮助我,如何解决此问题?

$(document).ready(function(){
  $('input[type="radio"]').click(function(){
  if($('input[name=one][value =yes]:checked')) {
    alert("Text");
  }
  
  if($('input[name=two][value =no]:checked')) {
    // alert("Text");
  }
  
  });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Show text?</p> 
<input type="radio" name="one" value="yes">Yes
<input type="radio" name="one" value="no">No


<p>Do somthing Else</p> 
<input type="checkbox" name="two" value="no">No

2 个答案:

答案 0 :(得分:3)

您需要使用this关键字从引发该事件的广播中检索value。然后,您可以简单地在if条件下读取其值,如下所示:

$(document).ready(function() {
  $('input[type="radio"]').change(function() {
    if ($(this).val() == 'yes') {
      console.log("Text");
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Show text?</p>
<input type="radio" name="one" value="yes">Yes
<input type="radio" name="one" value="no">No

<p>Do somthing Else</p>
<input type="checkbox" name="two" value="no">No

请注意,出于可访问性的原因,在change上使用了click事件,并在调试时使用了console.log()而不是alert()

答案 1 :(得分:0)

尝试一下。

$(document).ready(function(){
  $('input[type="radio"]').click(function(){
  if($('input:radio[name="one"]:checked').val() =="yes") {
  
    alert("Text");
  }
  });
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Show text?</p> 
<input type="radio" name="one" value="yes">Yes
<input type="radio" name="one" value="no">No


<p>Do somthing Else</p> 
<input type="checkbox" name="two" value="no">No