为啥jQuery将单选按钮的值返回为“ON”?如何纠正它?

Posted

技术标签:

【中文标题】为啥jQuery将单选按钮的值返回为“ON”?如何纠正它?【英文标题】:Why jQuery returning value of radio buttons as "ON"? How to correct it?为什么jQuery将单选按钮的值返回为“ON”?如何纠正它? 【发布时间】:2021-08-22 01:57:54 【问题描述】:

我不是绝对的新手,但不知何故,我从一个小时后就被抓住了。你能帮我找出我在下一篇文章中犯错的地方吗?我正在尝试返回“选中/选择”单选选项的值,并且每次都返回“打开”。

我的(引导)html 代码:

<div class="form-row mb-4 p-2 text-center font-weight-bold rounded-top shadow-sm-dark no-shadow-hover bl__home_apr-choice">
    <div class="col-4 offset-2 col-md-3 offset-md-0 mb-md-0 mb-1">
      <div class="custom-control custom-radio custom-control-inline">
        <input type="radio" id="searchByProject" name="searchBy" class="custom-control-input" checked="checked">
        <label class="custom-control-label" for="searchByProject" value="Project" pointer>by Project</label>
      </div>
    </div>
    <div class="col-4 col-md-3 offset-md-0 mb-md-0 mb-1">
      <div class="custom-control custom-radio custom-control-inline">
        <input type="radio" id="searchByInvoiceID" name="searchBy" class="custom-control-input">
        <label class="custom-control-label" for="searchByInvoiceID" value="Invoice" pointer>by Invoice</label>
      </div>
    </div>
    <div class="col-4 offset-2 col-md-3 offset-md-0 mb-md-0">
      <div class="custom-control custom-radio custom-control-inline">
        <input type="radio" id="searchByStartDate" name="searchBy" class="custom-control-input">
        <label class="custom-control-label" for="searchByStartDate" value="Started" pointer>by Start Date</label>
      </div>
    </div>
    <div class="col-4 col-md-3 offset-md-0 mb-md-0">
      <div class="custom-control custom-radio custom-control-inline">
        <input type="radio" id="searchByEndDate" name="searchBy" class="custom-control-input">
        <label class="custom-control-label" for="searchByEndDate" value="Ended" pointer>by End Date</label>
      </div>
    </div>
  </div>

这就是我使用 jQuery 的方式:

console.log($('input[name=searchBy]:checked').val()); 

任何帮助将不胜感激。提前致谢。

【问题讨论】:

为每个收音机添加value属性&lt;input type="checkbox" value="XXX"/&gt; 仅供参考 "on" 是单选按钮的默认值 哦,这就是问题所在。谢谢@charlietfl 指出。这是您的快速帮助。万分感谢!你帮了大忙。上帝保佑你。 【参考方案1】:

你应该在input标签中设置value,你是在label中做的。

你的收音机应该是这样的:
<input type="radio" id="searchByEndDate" name="searchBy" value="Ended" checked>

【讨论】:

非常感谢...我刚刚从@charlietfl 学到了这一点。这是我犯的愚蠢错误。再次感谢。

以上是关于为啥jQuery将单选按钮的值返回为“ON”?如何纠正它?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JS 或 JQUERY 将单选按钮转换为只读(未禁用)

如何将单选按钮创建为按钮?

如何将单选按钮添加到菜单项?

如何将单选按钮值与输入字段相关联

使用jquery通过id获取单选按钮的值[重复]

将单选组分配给单选按钮