从单选按钮动态更新文本

时间:2013-11-26 18:12:30

标签: javascript html radio-button

我正在尝试获取输入标记内的文本以显示单选按钮的状态。代码工作正常,除了第一次(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>

2 个答案:

答案 0 :(得分:2)

在窗口对象完全加载之前,您实际上正在执行函数调用。您应该将呼叫更改为:

window.onload = function(){autoSelect("rolls");}

<强> jsFiddle example

哦,还有一个小小的便条。您在for=rolls"中输了一个拼写错误(缺少一组引号)。

答案 1 :(得分:0)

在这里猜测:取决于您使用的浏览器。浏览器有可能会压缩第二个alert(因为您点击了不再显示)

通常:使用console.log超过警报。使用开发工具。