JavaScript:switch语句没有设置隐藏元素值

时间:2013-07-11 11:49:09

标签: javascript switch-statement getelementbyid

我有一个从onChange()元素调用的简单select函数,它应该根据switch值设置隐藏元素值。我可以让switch语句工作但是隐藏的元素值没有设置 - 这里有什么明显的东西吗?

该函数被称为OK,因为末尾的警告语句显示正确的值,例如'one @ example / com' - 我无法使用新值更新隐藏元素'recipient'。

function setEmail() {
var s = document.getElementById('school_institute');
var school = s.options[s.selectedIndex].value;
var x = document.getElementById('recipient');
switch(school) {
    case 'Name 1':
        x = 'one@example.com';
        break;
    case 'Name 2':
        x = 'two@example.com';
        break;
    default:
        x = 'three@example.com';
        break;
}
}

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:2)

使用[object HTMLInputElement].value而不是覆盖对元素的引用:

function setEmail() {
    var s = document.getElementById('school_institute');
    var school = s.options[s.selectedIndex].value;
    var x = document.getElementById('recipient');
    switch(school) {
        case 'Name 1':
            x.value = 'one@example.com';
            break;
        case 'Name 2':
            x.value = 'two@example.com';
            break;
        default:
            x.value = 'three@example.com';
            break;
    }
}
// x = document.getElementById('recipient');
// x = 'hello'; // Here we overwrite the reference to the node
// Instead set the value using `.value`
// x = document.getElementById('recipient');
// x.value = 'hello';