单选button“选中”属性不工作

<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" /> 

单选button不显示为默认checked 。 我开始没有默认select做一些非常简单的jsvalidation,它不工作。 所以我select使用默认值,直到我发现并发现了一些奇怪的事情。

这个标记是有效的,我尝试过FF,Safari和Chrome。 没有任何工作

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

如果您有多个与检查属性相同的名称,它将采取页面上最后选中的电台。

 <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> 

这可能是:

在jQuery 1.9.1中有单选button的错误吗?

简而言之:不要使用attr(),而是使用prop()来检查单选button。 上帝我讨厌JS …

这个恼人的问题的最终JavaScript解决方法 –

只需将jQuery命令包装在setTimeout 。 间隔可以是非常小的,我使用10毫秒,它似乎工作得很好。 延迟非常小,对于最终用户来说实际上是无法察觉的。

 setTimeout(function(){ $("#radio-element").attr('checked','checked'); },10); 

这也将与

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

哈克…哈克…哈克…哈克…是的,我知道…因此,这是一个解决方法….

嘿,我也面临类似的问题,在ajax生成的页面..我采取生成的来源使用FF中的Webdeveloper插件,并检查表单中的所有input,发现有一个隐藏的div(display:none)内的另一个checkbox。有相同的ID,一旦我改变了第二个checkbox的ID,它开始工作..你也可以尝试..让我知道结果..干杯

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

否默认选中。 你有任何的JavaScript运行会影响收音机?

无线电input必须在“检查”工作的表格内。

嗨,我想如果你把id属性的第二个input,并给它一个唯一的ID值,它将工作

 <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;" id="amex0" type='radio' name='Contact0_AmericanExpress' class='check' value='0' checked="checked"/> 

以下是Checked属性与属性的详细解释, 在此处input链接描述

这可能有助于某人,这是另一种方式来检索选定的单选button值

 var accepted = $('input[name="Contact0_AmericanExpress"]:checked').val(); 

这里设置ID为单选button是可选的。

快乐的编码!

你的代码是正确的,尝试debugging你的JQuery脚本来find问题! 如果你使用FF,你可以安装一个扩展来debuggingJS(和JQuery),它被称为FireBug。

只需将检查的属性添加到您想要默认检查的每个电台

尝试这个 :

 <input style="width: 20px;" type="radio" name="Contact0_AmericanExpress" class="check" checked/> 

你使用的是非标准的xhtml代码(值应该用双引号框起来,而不是单引号)

尝试这个:

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