我正在尝试这样做。
我有3个单选按钮,
我想在没有jquery的标准javascript中做,因为目前还没有。
到目前为止,这是我的代码。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script type="text/javascript">
function toggle(radioBtn)
{
if(radioBtn.checked)
{
radioBtn.checked = false;
}
else
{
radioBtn.checked = true;
}
// only select one at a time.
}
</script>
</head>
<body>
<form id="myForm" name="myForm">
<input type="radio" name="radioBtn" id="radioBtn1" value="A" onClick="toggle(this);" />
<input type="radio" name="radioBtn" id="radioBtn1" value="B" onClick="toggle(this);"/>
<input type="radio" name="radioBtn" id="radioBtn1" value="C" onClick="toggle(this);"/>
</form>
</body>
</html>
请帮忙。我们将不胜感激。 感谢
答案 0 :(得分:9)
你可以做一些简单直接的内联,如下所示:
<input type="radio" name="radioBtn" id="radioBtn1" value="A" onMouseDown="this.__chk = this.checked" onClick="if (this.__chk) this.checked = false" />
<input type="radio" name="radioBtn" id="radioBtn2" value="B" onMouseDown="this.__chk = this.checked" onClick="if (this.__chk) this.checked = false"/>
<input type="radio" name="radioBtn" id="radioBtn3" value="C" onMouseDown="this.__chk = this.checked" onClick="if (this.__chk) this.checked = false"/>
答案 1 :(得分:0)
记录检查哪个radioButton,哪些不是(可以使用隐藏字段或数组),并按照惯例设置已选中/未选中
答案 2 :(得分:0)
您可以绕过浏览器的单选按钮的默认行为,并通过创建一个额外的“隐藏”单选按钮来实现您之后的切换效果,并在用户切换时为其模拟click
事件可见按钮。请参阅此jsFiddle中的一个工作示例:http://jsfiddle.net/k73Nt/
答案 3 :(得分:0)
这可能不是一个解决方案,它将进入书中以保持清洁,但我让它工作。
HTML:
<input type="radio" name="radioBtn" id="radioBtn1" value="A" onmouseup="toggle(this);"/>
<input type="radio" name="radioBtn" id="radioBtn2" value="A" onmouseup="toggle(this);" />
<input type="radio" name="radioBtn" id="radioBtn3" value="A" onmouseup="toggle(this);"/>
使用Javascript:
function toggle(radioBtn)
{
if(radioBtn.checked)
{
setTimeout("disableRadio('"+radioBtn.id+"')",10);
} else {
radioBtn.checked = true;
}
}
function disableRadio(radioId) {
el = window.document.getElementById(radioId);
el.checked = false;
}
您的代码无效,因为javascript setter被html点击事件或其他东西所推翻。我不知道如何以正确的方式解释它,但延迟解决了你的问题。
希望这会有所帮助!