0

javascript を使用してテキストフィールドを div に動的に追加します

function moreLink(){
//gco is global, starts from 1, limit of textfields added is 10

if (gco!=10){
    var newLinkb=[];

        document.getElementById("extraLink").innerHTML+="<br>";
    newLinkb[gco]= document.createElement('input');
    newLinkb[gco].setAttribute('type','text');
    newLinkb[gco].setAttribute('id',gco);        
    document.getElementById("extraLink").appendChild(newLinkb[gco]);            

    gco++;

        }

else{ alert ('sorry, cannot add more, limit is 10');
      }

}

したがって、右ボタンを押すとmoreLink、新しいテキストフィールド入力タイプを追加する関数が呼び出されます。

問題は、最初のテキストフィールドに何かを書いてボタンを押すと、2 番目のテキストフィールドが表示されますが、最初のテキスト (値) が消えてしまうことです。

これを修正するにはどうすればよいですか?

ありがとう

4

2 に答える 2

3
document.getElementById("extraLink").innerHTML+="<br>";

これにより、 の DOM が文字列化 (シリアル化) され#extraLink、文字列が追加され、再度解析されます。DOM のすべての値 (入力、カスタム プロパティ、イベント ハンドラー) は失われます。代わりに、適切な DOM メソッドを使用してくださいinnerHTML

document.getElementById("extraLink").appendChild(document.createElement("br"));
于 2013-10-15T21:39:44.120 に答える