【问题标题】:jQuery throwing error when trying to get selected radio button value尝试获取选定的单选按钮值时jQuery抛出错误
【发布时间】:2011-08-02 17:32:30
【问题描述】:

鉴于此单选按钮集:

<div id="reviewScope">
  <input type="radio" name="loadMarkers" id="day" value="day"><label for="day">24 Hours</label>
  <input type="radio" name="loadMarkers" id="week" value="week"><label for="week">Week</label>
  <input type="radio" name="loadMarkers" id="month" value"month"><label for="month">Month</label>
</div>

然后使用 jQuery 1.5.2 调用,我试图在答案 here 之后获取所选单选按钮的值:

$('#reviewScope input:radio').change(function() {
  period = $("input[name='loadMarkers']:checked").val();
  ....
}

Firebug 抛出错误:

$("input[name='loadMarkers']:checked").val 不是函数

我做错了什么?

【问题讨论】:

  • @mu。如果是这种情况,我认为更改处理程序永远不会运行,这就是错误所在
  • 你在使用 jQuery 和其他一些 js 框架的组合吗? (如 wordpress 管理员)。如果是这种情况,请尝试将 $ 替换为 jQuery。
  • 奇怪的是,如果我将 period = $("input[name='loadMarkers']:checked").val() 更改为 period = $(this).attr('value') 它可以工作。我尝试完全删除该行并添加了console.log($),但在 Firebug 中似乎没有任何记录。

标签: jquery jquery-selectors


【解决方案1】:

您是否缺少更改方法中的结束“)”?

$('#reviewScope input:radio').change(function() {
  period = $("input[name='loadMarkers']:checked").val();
  ....
})

http://jsfiddle.net/67Q68/

【讨论】:

  • 这只是我的复制和粘贴错误。实际代码有右括号。
【解决方案2】:

你可以这样做:

$('#reviewScope input:radio').each(function() {
   $(this).click(function() {
       period = $("input[name='loadMarkers']:checked").val();
       ....
   });
});

检查右括号和方括号

【讨论】:

    【解决方案3】:
    $("#day").click(function() {
     if ($(this).is(':checked')) {
         var period = "day";
        }
    });
    

    对其他单选按钮一一做同样的事情

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-27
      • 2011-05-07
      • 1970-01-01
      • 2016-08-30
      • 2013-10-14
      • 2014-08-24
      • 1970-01-01
      相关资源
      最近更新 更多