我有一个下拉列表,当选择一个选项时,它需要填充一个输入值,选择的选项的值只是在nothings更改时不起作用,有人能看到并解释为什么我的代码?
<select id="corr_sel" onchange="updatecredoff();">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<div id="cr_off"><?php echo $user_curr_coff;?></div>
function updatecredoff() {
if(value == 1) {
document.getElementById("corr_sel").value = '1';
document.getElementById("cr_off").innerHTML = '1';
}
else if(value == 2) {
document.getElementById("corr_sel").value = '2';
document.getElementById("cr_off").innerHTML = '2';
}
else if(value == 3) {
document.getElementById("corr_sel").value = '3';
document.getElementById("cr_off").innerHTML = '3';
}
else if(value == 4) {
document.getElementById("corr_sel").value = '4';
document.getElementById("cr_off").innerHTML = '4';
}
else if(value == 5) {
document.getElementById("corr_sel").value = '5';
document.getElementById("cr_off").innerHTML = '5';
}
else if(value == 6) {
document.getElementById("corr_sel").value = '6';
document.getElementById("cr_off").innerHTML = '6';
}
else if(value == 7) {
document.getElementById("corr_sel").value = '7';
document.getElementById("cr_off").innerHTML = '7';
}
else if(value == 8) {
document.getElementById("corr_sel").value = '8';
document.getElementById("cr_off").innerHTML = '8';
}
else if(value == 9) {
document.getElementById("corr_sel").value = '9';
document.getElementById("cr_off").innerHTML = '9';
}
else {
document.getElementById("corr_sel").value = '10';
document.getElementById("cr_off").innerHTML = '10';
}
};
答案 0 :(得分:2)
在此之前,您尚未在代码中的任何位置定义value
(至少从您展示的内容中定义):
if(value == 1) {
您可以定义附加onchange="updatecredoff(this);
的{{1}},然后在第一个条件赋值之前在您的函数中定义:
this
实施例: http://jsfiddle.net/niklasvh/yXHD5/
或者你可以通过ID得到这样的值:
function updatecredoff(e) {
value = e.value;
如果这是您打算对该功能执行的所有功能,您可以将其简化为:
value = document.getElementById("corr_sel").value;
答案 1 :(得分:1)
var“Value”来自哪里,你没有在代码中初始化它。
你的代码会像这样工作得很好。
document.getElementById("cr_off").innerHTML = document.getElementById("corr_sel").value;
答案 2 :(得分:1)
除了未定义value
之外,您的函数看起来非常冗余。从select
元素中选择一个项会更改其selectedIndex
属性,您可以随后使用该属性检索该值并将其写入文本输入字段。例如。像这样:
function updatecredoff(el) {
document.getElementById('cr_off').value = el.options[el.selectedIndex].value;
};
这是一个与{/ 3>一起玩的jsfiddle