为什么我的收音机的值输入NaN?

时间:2016-03-10 23:21:49

标签: javascript jquery html css dom

所以我有一段代码

Update

其中$(this).find('input[name^="radio-qid-"]:checked').val() 包含一段HTML就像获取一段HTML中的选中单选按钮一样

$(this)

奇怪的是,它总是在那个上下文中计算为<div class="yesno-holder"> <div class="radio"> <label><input type="radio" class="yes-radio" name="radio-qid-2" value="100" checked="">Yes</label> </div> <div class="radio"> <label><input type="radio" class="no-radio" name="radio-qid-2" value="50">No</label> </div> </div> ,而如果我在浏览器中输入NaN,它会获得所有选中的单选按钮这样的HTML片段,它打印出一个真实的值(作为一个字符串)。那么这里发生了什么????

3 个答案:

答案 0 :(得分:2)

表单返回的值将是一个字符串。您必须先将其转换为数字。

尝试从单选按钮获取值并将其放入parseInt,例如parseInt($('input[name^="radio-qid-"]:checked').val(),10)

答案 1 :(得分:1)

我可以给你一个更具体的理由为什么&#34;这个&#34;选择器没有工作。

&#34; this&#34; selector指的是父元素中的值。例如,尝试使用此代码,它将起作用。

$(document).ready(function(){
    $('.yesno-holder').click(function(){
        var value = ($(this).find('input[name^="radio-qid-"]:checked').val());
        alert(value);
    });
});

在这种情况下,这指的是“.yesno-holder”内的内容。被点击了。您可以设置尽可能多的“.nono-holder”#39;您喜欢的实例,它只会在您单击的类中返回结果。

答案 2 :(得分:0)

嗯......我已经过测试,所有人都在努力工作。这里很好......

&#13;
&#13;
jQuery(document).ready(function($) {
  $('input[name^="radio-qid-"]:checked').on('change',function(){
    alert($(this).val());
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="yesno-holder">
  <div class="radio">
    <label>
      <input type="radio" class="yes-radio" name="radio-qid-2" value="100" checked="">Yes</label>
  </div>
  <div class="radio">
    <label>
      <input type="radio" class="no-radio" name="radio-qid-2" value="50">No</label>
  </div>
</div>
&#13;
&#13;
&#13;