我正在尝试根据下拉列表中的选择更新输入字段上的文本标签。
默认情况下,下面的字段标签显示为“平均值”。如果选择了选项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的新手,所以没有什么是太明显的指出。感谢。
答案 0 :(得分:1)
第一个错误(在不匹配的标签旁边)是getElementById("cfr_1")
,你得到的标识为cfr_1
的元素是input
元素,而不是标签。
第二个错误是,使用tmpThing = "Lower bound"
,您将不会更改元素的innerText。你需要做,例如document.getElementById('cfr_1_label').innerText = "Lower bound"
(但这需要您将标识cfr_1_label
添加到label
标记)