0

入力フィールドの値を 2 つの場所で渡したいと考えています。しかし、私のコードは一度しか渡しません。これを書き直して、コードの下に再び表示されるようにする方法はありますか?

//HTML:
<input type="text" name="amount" onchange="passValue(this, 'preview_amount')"/>

//Outputs first value
<span id="preview_amount"></span>

//Outputs Nothing
<span id="preview_amount"></span>

//Javascript:
function passValue(e, target){
    document.getElementById(target).innerHTML = e.value;
} 
4

4 に答える 4

0

onchange を更新するすべてのクラス名を設定spansし、このクラスに従って innerHTML を設定できるため、関数に異なる ID を渡す必要はありません。

フィドル

<input type="text" name="amount" onchange="passValue(this.value)"/>
<span class="set_values_here" id="preview_amount_1"></span>
<span class="set_values_here" id="preview_amount_2"></span>

<script>
function passValue(new_value) {

    var els = document.getElementsByClassName("set_values_here");

    for(var i=0; i<els.length; i++)
    {
        document.getElementById(els[i].id).innerHTML = new_value;
    }
} 
</script>
于 2013-06-25T06:37:15.993 に答える
0

idDOM ドキュメント内で要素を重複させることはできません。IDは一意でなければなりません。

jquery と一意の ID を使用すると、問題は単純になります。

<input ... onChange="passValue(this, '#preview_amount1, #preview_amount2');" />

<span id="preview_amount1"></span>
<span id="preview_amount2"></span>

function passValue(e, targets) {
   $(targets).innerHTML = e.value;
}

2 つのスパンの異なる ID と、それらの ID が onChange ハンドラー内でどのように渡されるかに注意してください。

于 2013-06-25T05:57:07.023 に答える