为什么单选按钮不能是“只读的”?

新手上路,请多包涵

我想显示一个单选按钮,提交它的值,但根据情况,让它不可编辑。 Disabled 不起作用,因为它不提交值(或者提交值?),并且使单选按钮变灰。只读确实是我正在寻找的,但由于某种神秘的原因,它不起作用。

是否需要使用一些奇怪的技巧才能使只读模式按预期工作?我应该只用 JavaScript 来做吗?

顺便说一句,有谁知道为什么只读在单选按钮中不起作用,而在其他输入标签中却起作用?这是 HTML 规范中那些难以理解的遗漏之一吗?

原文由 mcv 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 406
2 个回答

我通过仅禁用未选中的单选按钮在单选按钮上伪造了只读。它可以防止用户选择不同的值,并且选中的值将始终在提交时发布。

使用 jQuery 使只读:

 $(':radio:not(:checked)').attr('disabled', true);

这种方法也适用于使选择列表只读,除了您需要禁用每个未选择的选项。

原文由 Megan 发布,翻译遵循 CC BY-SA 2.5 许可协议

如果有其他选项,单选按钮只需要是只读的。如果您没有任何其他选项,则无法取消选中已选中的单选按钮。如果您有其他选项,您可以仅通过禁用其他选项来防止用户更改值:

 <input type="radio" name="foo" value="Y" checked>
<input type="radio" name="foo" value="N" disabled>

小提琴:http: //jsfiddle.net/qqVGu/

原文由 Sampson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题