0

値に基づいて非表示の要素の値を設定する必要がある要素から呼び出される単純なonChange()関数があります。switch ステートメントを機能させることはできますが、非表示の要素の値が設定されません。ここで明らかなことはありますか?selectswitch

関数は OK と呼ばれます。最後のアラート ステートメントが正しい値を示しているためです。

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 に答える