Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 单选按钮“;勾选“;属性不工作_Html_Forms_Radio Button - Fatal编程技术网

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