【问题标题】:How to pre-select a radio button in jQuery如何在 jQuery 中预先选择单选按钮
【发布时间】:2015-03-04 13:25:08
【问题描述】:

我想预先选择以下集合中的第一个单选按钮:

HTML

<input type="radio" value="0" name="serviceNoteType[1]">
<input type="radio" value="1" name="serviceNoteType[1]">

jQuery

var i = 1; // for sake of this example
$('[name="serviceNoteType\\['+ i +'\\]"]').prop('checked', true);

结果是第二个单选按钮被选中,我希望第一个被选中。如何定位第一个单选按钮?

【问题讨论】:

  • 为什么不给你想检查的对象添加一个checked 属性呢?

标签: jquery select radio-button


【解决方案1】:

您可以将.first() 添加到您的选择器:

var i = 1; // for sake of this example
$('[name="serviceNoteType\\['+ i +'\\]"]').first().prop('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="radio" value="0" name="serviceNoteType[1]">
<input type="radio" value="1" name="serviceNoteType[1]">

【讨论】:

  • 酷@j08681——我不知道。我现在试一试,然后回帖。
  • 太棒了...成功了。谢谢@j08691——我学到了一些新东西(很酷)。所以我假设.second().third() 等都可以正常工作。
  • @H.Ferrence - 但同样,为什么要使用 jQuery “预选”,为什么不直接编辑 HTML 呢?
  • @H.Ferrence - 有.first().last(),但对于介于两者之间的任何内容,您可以使用.eq():eq()。有关详细信息,请参阅 jQuery 文档。
  • “为什么要使用 jQuery 进行“预选”,为什么不直接编辑 HTML” 原因是底层 CMS 无法自行打开以使我能够预选收音机。请不要对获得新的 CMS @adeneo 发表评论——希望我可以,但我已经使用该 CMS 一年半了,目前无法解开它。
【解决方案2】:

更短的形式。试试这个:

$("input:radio:first").attr('checked', true);

【讨论】:

  • 好的,谢谢@Riad。鉴于我的单选按钮命名约定的复杂性(由于我使用的底层 CMS),我需要使用 (at)j08691 的答案
【解决方案3】:

名称需要不同。您的选择器将仅检查以该名称呈现的最后一个元素。

$('[name="serviceNoteType\\['+ i +'\\]"]:first-child').prop('checked', true);

未经测试,因此语法可能略有偏差,但应该会给你这个想法。

【讨论】:

  • 但这不是单选按钮如何区分哪些元素被选中@sareed?
  • 您选择的是name=,因为它们共享相同的名称,它将选择最后一个呈现的名称。你可以做一个each() 并检查值 0 我猜或选择第一个孩子等。
  • @sareed - 但是为单选按钮组使用相同的名称是它们的工作方式,以及使它们在选择之间切换的原因。如果所有单选按钮的名称不同,则它不再按预期工作。
猜你喜欢
  • 2015-05-12
  • 1970-01-01
  • 2015-01-02
  • 2012-04-15
  • 2011-06-11
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多