如何使辐射按钮为只读但未禁用?
问题描述:
问题“如何使单选按钮只读?”已被询问n
次。但解决方案始终是disabled="disabled"
。如何使辐射按钮为只读但未禁用?
(这里也可以是复杂的JavaScript的解决方案,与click
或change
事件工作,防止值的变化,但所有的具有通常或多或少肮脏的黑客的气味。)
问题/ disabled="disabled"
的副作用是,它从数据集中“删除”该字段,然后它不会发送到服务器。
我想要的是使单选按钮只读/不可更改 - 但在同一时间,让他们发送到表单提交服务器。 disabled
不符合此要求,readonly
似乎不适用于单选按钮。
将按钮设置为只读而不将其从表单数据集中删除的正确HTML属性是什么?
答
如果这是你的意思。你有一个radio button
它有一个值,你不希望价值被删除或改变,但你想显示给用户可能要通知他的同意。那么我认为这应该工作。
给予radio button
a name
属性,该属性单独分配给它,还有这样的checked
属性。
<input type="radio " name="my_radio_btn" value="its_value" checked />
通过这种方式,用户无法取消勾选
答
这似乎有点哈克,但你可以只设置单选按钮的价值是它的初始状态时,onclick
事件被解雇它。
<!DOCTYPE html>
<html>
<body>
<input id="button1" type="radio" onmouseover="setValue(this)" onclick="retainValue(this)" checked> Radio Example
<input id="button2" type="radio" onmouseover="setValue(this)" onclick="retainValue(this)"> Radio Example
<script>
var checkboxes = {};
function setValue(el) {
if(!(el.id in checkboxes))
checkboxes[el.id] = el.checked;
}
function retainValue(el) {
if(!(el.id in checkboxes))
checkboxes[el.id] = el.checked;
el.checked = checkboxes[el.id];
}
</script>
</body>
</html>
它可以让你只要你想提供的每一个页面上有尽可能多的电台有一个唯一的ID。
如果你愿意使用jQuery,那么它会很容易完成。
为什么不只是使用图像和隐藏的领域? –