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

JavaScript: switch statement not setting hidden element value

本文关键字:隐藏 元素 设置 switch 语句 JavaScript      更新时间:2023-09-26

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

该函数被称为OK,因为末尾的警报语句显示了正确的值,例如one@example/"com"-我只是无法用新值更新隐藏元素"receiver"。

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;
}
}

非常感谢您的帮助。

感谢

使用[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';