我有一个从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;
}
}
非常感谢任何帮助。
由于
答案 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';