Javascript选择选项不更新

时间:2011-06-05 11:39:25

标签: javascript

我有一个下拉列表,当选择一个选项时,它需要填充一个输入值,选择的选项的值只是在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';
    }
    };

3 个答案:

答案 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