Html 单选按钮“;勾选“;属性不工作
默认情况下,单选按钮不会显示为选中的Html 单选按钮“;勾选“;属性不工作,html,forms,radio-button,Html,Forms,Radio Button,默认情况下,单选按钮不会显示为选中的。我一开始没有默认的选择,只是做了一些非常简单的js验证,但它不起作用。所以我选择只使用默认值,直到我明白了这一点,并发现一些奇怪的事情正在发生 标记是有效的,我已经在FF、Safari和Chrome中尝试过。什么都不管用 我认为这与jQuery库冲突,因为当我删除调用脚本时,问题就消失了 您想接受美国运通吗?对 不 刚刚将您的代码复制到: 默认情况下,选择“否”。您是否运行了会影响广播框的javascript?您使用的是非标准xhtml代码(值应使用双引号
。我一开始没有默认的选择,只是做了一些非常简单的js验证,但它不起作用。所以我选择只使用默认值,直到我明白了这一点,并发现一些奇怪的事情正在发生
标记是有效的,我已经在FF、Safari和Chrome中尝试过。什么都不管用
我认为这与jQuery
库冲突,因为当我删除调用脚本时,问题就消失了
您想接受美国运通吗?对
不
刚刚将您的代码复制到:
默认情况下,选择“否”。您是否运行了会影响广播框的javascript?您使用的是非标准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>
你想接受美国运通吗?
对
不
您的代码是正确的,请尝试调试JQuery脚本以发现问题!
如果您使用的是FF,您可以安装一个扩展来调试JS(和JQuery),它被称为FireBug。如果您有多个具有选中属性的相同名称,它将使用页面上最后选中的收音机
你想接受美国运通吗?
对
大概
不
嘿,在一个ajax生成的页面中,我也遇到了类似的问题。。我使用FF中的Webdeveloper插件获取生成的源代码,检查表单中的所有输入,发现隐藏的div(display:none)中有另一个具有相同ID的复选框,一旦我更改了第二个复选框的ID,它就开始工作了。。你也可以试试。。让我知道结果。。干杯您好,我想如果您为第二个输入设置id属性,并为其指定一个唯一的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"/>
您想接受美国运通吗?
对
不
解决这一恼人问题的终极JavaScript解决方案-
只需将jQuery命令包装在setTimeout
中即可。间隔可能非常小,我使用10
毫秒,它似乎工作得很好。延迟非常小,最终用户几乎无法检测到
setTimeout(function(){
$("#radio-element").attr('checked','checked');
},10);
这也将与
$(“#无线电元素”).trigger('click')代码>
$(“#无线电元素”).attr('checked',true)代码>
$(“#radio element”).attr('checked',任何不为假的内容)代码>
简而言之:不要使用attr()而使用prop()来检查单选按钮。天哪,我讨厌JS…只需将checked属性添加到您希望默认选中的每个收音机中 试试这个:
<input style="width: 20px;" type="radio" name="Contact0_AmericanExpress" class="check" checked/>
jQuery文档提供了 因此,这里是另一种检索所选单选按钮值的方法
var accepted = $('input[name="Contact0_AmericanExpress"]:checked').val();
无线电输入必须在表单内,以便“检查”工作。
**选中单选按钮:true或false一次一个**
$('input:radio[name=anynameofinput]')。更改(函数(){
如果(this.value=='value1'){
$(“#id1”).attr(“aria checked”,“true”);
$(“#id2”).attr(“aria checked”,“false”);
}
else if(this.value==='value2'){;
$(“#id2”).attr(“aria checked”,“true”);
$(“#id1”).attr(“aria checked”,“false”);
}
});代码>我可以通过为两组输入设置相同的input
标签来重新编程,如下所示:
<body>
<div>
<div>
<h3>Header1</h3>
</div>
<div>
<input type="radio" name="gender" id="male_1" value="male"> Male<br>
<input type="radio" name="gender" id="female_1" value="female" checked="checked"> Female<br>
<input type="submit" value="Submit">
</div>
</div>
<div>
<div>
<h3>Header2</h3>
</div>
<div>
<input type="radio" name="gender" id="male_2" value="male"> Male<br>
<input type="radio" name="gender" id="female_2" value="female" checked="checked"> Female<br>
<input type="submit" value="Submit">
</div>
</div>
</body>
校长1
男性
女性
校长2
男性
女性
(要查看此运行,请单击)
以下两种解决方案都可以解决此问题:
对第二组中的输入使用不同的名称
对其中一个组使用form
tag而不是div
tag(无法真正找出解决问题的真正原因。希望听到一些意见!)
也可以这样试试
$('input:radio[name="name"][id="abcd'+no+'"]').attr("checked", "checked");
如果有
标记,则(“已检查”,true)
否则(“已检查”,“已检查”)
将checked=“已检查”
替换为checked={true}
。或者您甚至可以将其缩短为选中的
这是因为选中的属性的预期值类型是布尔值。不是字符串。您到底有什么问题?我将您的HTML复制到一个空文件中,并选中“否”按钮。这是IE8、FF和Opera。请参见下面的答案(不过是一种变通方法),这取决于Jordan的文档类型。不管怎样,它仍然可以在xhtml doctype中工作;不过,它不会验证。我只是为了好玩而更改它,但我知道这不是问题所在。验证很好,但不能解决这个问题。@CFP实际上,符合标准的XHTML(过渡、严格、HTML5等)中允许使用双引号或单引号。看:我知道,这很疯狂,对吧?不,我没有任何脚本可以处理单选按钮。只需对文本字段和滑块脚本进行一些验证。我现在要检查一下,只是为了确认……找到了罪犯,但我不知道剧本中到底是什么导致了这个问题。谢谢本,但肯定是剧本。禁用时,我可以看到默认选中的按钮。事实上,我认为这与JQuery库有冲突。在第一个示例中,您似乎在所有单选元素上设置了“checked”属性。因为它是一个id选择器,所以应该只有1个匹配元素。这可能没有回答OP的问题,但是它昨天发现了同样的问题。它实际上会检查
中的最后一台收音机。您可以使用相同名称检查多个输入,只要它们属于不同的形式。这就是我的案例中的问题。这一页有两个div,o