0

我有一个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;
}
}

非常感谢任何帮助。

谢谢

4

1 回答 1

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';
于 2013-07-11T11:52:08.203 回答