我正在尝试获取输入标记内的文本以显示单选按钮的状态。代码工作正常,除了第一次(onload事件)。页面加载时,将显示第一个警报但不显示第二个警报。一旦我点击另一个单选按钮(未经检查的单选按钮)然后再回到原始按钮,我会看到两个警报。有人可以帮我解释为什么会这样吗?我确信这是愚蠢的。感谢
<script>
window.onload = autoSelect("rolls");
function autoSelect(theValue)
{
if(theValue=="rolls")
{
alert("hello world");
document.getElementById("theLabel").innerHTML=theValue;
alert("hello World");
}
else
{
document.getElementById("theLabel").innerHTML=theValue;
}
}
</script>
<div >
<form action="" >
<input type="radio" id="matRadioRolls" name="rollsOrSqFeet" value="rolls" onclick="autoSelect(this.value)" checked>Rolls<br/>
<input type="radio" id="matRadioSqFt" name="rollsOrSqFeet" value="sqfeet" onclick="autoSelect(this.value)" >Sq Ft<br/>
</form>
<label class="productsLabel" for=rolls" id="theLabel"></label>
<input type="text" name="rolls" id="rollsMat"></button>
</div>
答案 0 :(得分:2)
在窗口对象完全加载之前,您实际上正在执行函数调用。您应该将呼叫更改为:
window.onload = function(){autoSelect("rolls");}
<强> jsFiddle example 强>
哦,还有一个小小的便条。您在for=rolls"
中输了一个拼写错误(缺少一组引号)。
答案 1 :(得分:0)
在这里猜测:取决于您使用的浏览器。浏览器有可能会压缩第二个alert
(因为您点击了不再显示)
通常:使用console.log
超过警报。使用开发工具。