【问题标题】:It's possibile select one radio without name attribute? [closed]可以选择一个没有名称属性的收音机吗? [关闭]
【发布时间】:2016-02-08 16:26:22
【问题描述】:

我需要使用属性名称,以便我可以为单选按钮使用“名称”属性。 我知道具有独占选择的单选按钮的代码是:

<input type="checkbox" name="radio">
<input type="checkbox" name="radio">

任何人都可以帮我选择另一种方法来呈现收音机,没有名称属性的独占选择?

【问题讨论】:

  • 不清楚你在问什么,但如果没有组,那么复选框可能就是你想要的。请更详细地解释您要做什么。
  • 另外你为什么不使用名字?如果在表单中使用,控件必须有一个名称,否则它不会提交
  • name 不用于分组,你用它做什么?如果您需要区分组中的按钮,您应该使用value
  • 一个人可能会删除名称属性的一个原因是prevent values from being submitted

标签: javascript jquery html radio-button


【解决方案1】:

你可以使用class:-

$('.radio').change(function() {
  $('.radio').not(this).prop('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="radio" class="radio">
<input type="radio" class="radio">

甚至只是type:-

var radios = $('[type="radio"]');

radios.change(function() {
  radios.not(this).prop('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="radio">
<input type="radio">

【讨论】:

  • 为什么需要这样的配置?这是没有意义的,如果在表单中使用,将永远不会提交。没有name 的表单控件将不会被提交
  • @charlietfl 我同意按预期使用 name 属性总是一个好主意,但我并不总是有收音机,即使是在表单中,或者如果我不希望定期提交,我希望用 ajax 完成,在这种情况下,并非所有输入都需要名称。但是对于收音机,我不明白你为什么不只使用 name 属性。
  • ...您还应该收听change 事件而不是click 事件。
  • @charlietfl 没有证据表明该问题将被提交。
  • @JoshCrozier 同意,我已经更新了答案。
【解决方案2】:

我建议使用类似于@BG101 的方法,但将其包装在一个函数中并允许使用任何 jQuery 选择器,这样您就可以定位多个组。

https://jsfiddle.net/53knnzho/

function bindRadios(selector){
  $(selector).click(function() {
    $(selector).not(this).prop('checked', false);
  });
};

bindRadios("#radio1, #radio2, #radio3");
bindRadios("#radio4, #radio5, #radio6");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='radio' id='radio1' />
<input type='radio' id='radio2' />
<input type='radio' id='radio3' />
<br><br>
<input type='radio' id='radio4' />
<input type='radio' id='radio5' />
<input type='radio' id='radio6' />

【讨论】:

  • 这可以使用类或ID,或者您可以将它们放在一个div中并执行bindRadios("div#div1 input[type=radio]")之类的操作来获取该div/组中的所有内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
相关资源
最近更新 更多