根据下拉列表更改输入字段的标签

时间:2013-02-11 22:03:36

标签: javascript

我正在尝试根据下拉列表中的选择更新输入字段上的文本标签。

默认情况下,下面的字段标签显示为“平均值”。如果选择了选项2,我希望它被“下限”替换。

<simpleLabel for="distLabel">Prior distribution, <i>CFR</i>:</label>
<select id="priorCFRDistType" onchange='changePriorDistType();'>
<option value="1">beta</option>
<option value="2">uniform</option>
</select>
<p>
<simpleLabel for="cfr_1">Mean:</label>
<input id="cfr_1" type="text" value ="0.05" />

在我的.js文件中,我有changePriorDistType()。它目前在引擎盖下做了很多事情。如何更新文本字段?这是我到目前为止所尝试的:

function changePriorDistType() {
    menuItem = document.getElementById("priorCFRDistType");
    priorCFRDistType = menuItem.options[menuItem.selectedIndex].value;
    if ( priorCFRDistType == 2 ) {
       var tmpThing = document.getElementById("cfr_1").innerText;
       tmpThing = "Lower bound";
    }
}

这不起作用。我是Javascript和HTML的新手,所以没有什么是太明显的指出。感谢。

1 个答案:

答案 0 :(得分:1)

第一个错误(在不匹配的标签旁边)是getElementById("cfr_1"),你得到的标识为cfr_1的元素是input元素,而不是标签。

第二个错误是,使用tmpThing = "Lower bound",您将不会更改元素的innerText。你需要做,例如document.getElementById('cfr_1_label').innerText = "Lower bound"(但这需要您将标识cfr_1_label添加到label标记)