0

私は JavaScript が初めてで、基本的な質問があります。サーバー生成ページに 2 つのテキスト フィールドがあり、フィールド 1 のテキスト値をフィールド 2 にコピーしてから、フィールド 1 の値を空の文字列に設定したいと考えています。問題は、JavaScript が浅いコピーを行っているため、フィールド 2 の値も空の文字列に設定されていることです。

コードは次のとおりです。

var eleTxtInit = document.getElementById("InputText0");
if (eleTxtInit == null) {
            eleTxtInit = document.getElementsByName("InputText0");
}


var eleTxtControl = document.getElementById("InputText1");
if (eleTxtControl == null) {
            eleTxtControl = document.getElementsByName("InputText1");
}

eleTxtControl.value = eleTxtInit.value;
eleTxtInit.value = "";

上記のコードの結果は、InputText1value""も :( ..

ここでの解決策は何ですか?

4

2 に答える 2

2

I think your problem is: eleTxtControl = document.getElementsByName("InputText1");. getElementsByName returns a Nodelist, so you should use

eleTxtInit = document.getElementsByName("InputText0")[0];
//and ofcourse
eleTxtControl = document.getElementsByName("InputText1")[0];

See jsfiddle

于 2012-09-07T07:31:20.990 に答える
0
eleTxtInit = document.getElementsByName("InputText0");

document.getElementsByNameHTMLCollectionはではなく を返すため、トリガーすると、後続のコード エラーが発生しますElement。についても同様ですeleTxtControl

于 2012-09-07T07:30:55.140 に答える