【发布时间】:2015-02-27 23:37:38
【问题描述】:
我有两个用于选择汽车的单选按钮。只有两个选项:您可以选择宝马汽车,也可以选择梅赛德斯汽车。
这是我的 html 代码:
<label>Please specify car:</label>
<label>BMW</label>
<input type="radio" name="is_BMW" id="is_BMW" onchange="valueChanged()" />
<label>Mercedes</label>
<input type="radio" name="is_Mercedes" id="is_Mercedes" onchange="valueChanged()" />
这个事件的 javascript 函数是 valueChanged(),它非常简单:
<script>
function valueChanged(){
if(document.getElementById("is_BMW").checked == true)
{
document.getElementById("is_Mercedes").checked = false;
}
else
{
document.getElementById("is_BMW").checked = false;
}
}
</script>
我遇到的问题是:每当我单击 BMW 单选按钮时,它都会被修复,我无法更改为 Mercedes。
如果我先点击梅赛德斯单选按钮,那么我可以切换到宝马,但同样,一旦我选择了宝马,我就无法再切换到梅赛德斯并且它已经修复了。
我的 Javascript 有什么问题吗?因为我的 Javascript 知识告诉我,我的 Javascript 代码没有任何问题。是别的吗?我应该使用 jQuery 来解决这个问题吗?
Edit-1: 对不起,我忘了提到一个关键点 - 我需要在单选按钮的更改上传递值。我特别对不起那个立即回答我问题的人,我应该早点提到这一点,我的错。
因此,我的实际 Javascript 应该是这样的:
<script>
function valueChanged(){
if(document.getElementById("is_BMW").checked == true)
{
document.getElementById("is_Mercedes").checked = false;
document.getElementById("is_BMW").value = 1;
document.getElementById("is_Mercedes").value = 0;
}
else
{
document.getElementById("is_BMW").checked = false;
document.getElementById("is_BMW").value = 0;
document.getElementById("is_Mercedes").value = 1;
}
</script>
【问题讨论】:
-
不需要包含javascript函数。您可以使用 Mritunjay 代码
-
那些标签需要
for属性(或者他们需要包装他们的输入)。它们也应该在输入的右边,而不是左边。 w3.org/TR/WCAG20-TECHS/H44.html -
@danielnixon 感谢您指出这些。
标签: javascript html