单选按钮"已检查"属性不起作用

Jor*_*dan 66 html forms radio-button

单选按钮checked默认不显示.我开始没有默认选择做一些非常简单的js验证,它没有工作.所以我选择使用默认值,直到我发现它并发现一些奇怪的事情发生.

标记是有效的,我尝试过FF,Safari和Chrome.什么都行不通.

我认为这是与jQuery库的冲突,因为当我删除调用脚本时问题就消失了.

<label>Do you want to accept American Express?</label> Yes
<input id="amex" style="width: 20px;" type='radio' name='Contact0_AmericanExpress' value='1' /> No
<input style="width: 20px;" type='radio' name='Contact0_AmericanExpress' class='check' value='0' checked="checked" />
Run Code Online (Sandbox Code Playgroud)

小智 83

如果您使用checked属性具有多个相同名称,则将使用页面上最后一次检查的无线电.

<form>
    <label>Do you want to accept American Express?</label>
    Yes<input id="amex" style="width: 20px;" type="radio" name="Contact0_AmericanExpress"  />  
    maybe<input id="amex" style="width: 20px;" type="radio" name="Contact0_AmericanExpress"  checked="checked" />  
    No<input style="width: 20px;" type="radio" name="Contact0_AmericanExpress" class="check" checked="checked" />
</form>
Run Code Online (Sandbox Code Playgroud)

  • 它实际上会检查`<form>`中的最后一个收音机.只要它们属于不同的表单,您就可以使用相同名称的多个选中输入. (3认同)

Mar*_* T. 33

这可能是这样的:

jQuery 1.9.1中的单选按钮是否有错误?

简而言之:不要使用attr()而是使用prop()来检查单选按钮.上帝我讨厌JS ......

  • :-(你讨厌JS (11认同)
  • 这可能没有回答OP的问题,但它回答了我的问题 (5认同)

Mic*_*ich 16

无线电输入必须位于表格内以便"检查"才能工作.

  • 将类型为radio的输入放在一个form里面(之前是div)解决了我的问题!我很好奇这是什么原因? (2认同)

Lix*_*Lix 11

解决这个烦人问题的终极JavaScript解决方法 -

只需将jQuery命令包装在一个setTimeout.间隔可以非常小,我使用10毫秒,它似乎工作得很好.延迟非常小,以至于最终用户几乎无法察觉.

setTimeout(function(){
  $("#radio-element").attr('checked','checked');
},10);
Run Code Online (Sandbox Code Playgroud)

这也适用

  • $("#radio-element").trigger('click');
  • $("#radio-element").attr('checked',true);
  • $("#radio-element").attr('checked',ANYTHING_THAT_IS_NOT_FALSE);

Hacky ...... hacky ...... hacky ...... hacky ...是的,我知道......因此这是一个解决方法....


Cod*_*tor 5

嘿我也遇到了类似的问题,在ajax生成的页面中..我使用FF中的Webdeveloper插件获取生成的源代码,并检查了表单中的所有输入,发现隐藏的div中有另一个复选框(display:none)使用相同的ID,一旦我更改了第二个复选框的ID,它就开始工作..你也可以试试..让我知道结果..干杯


Ben*_*owe 3

只需将您的代码复制到:http://jsfiddle.net/fY4F9/

默认情况下不选中。您运行的 JavaScript 是否会影响单选框?