2016-04-12 4 views
0

Javascriptで動的要素を持つフォームを作成します。 私は追加できますが削除できません! 問題を解決できません。よくわかりません! :(動的要素をJavascriptで削除する

マイコード:

<script type="text/javascript"> 
 
//+Element 
 
function addElement(div) { 
 
    var ni = document.getElementById(div); 
 
    var numi = document.getElementById('numVal'); 
 
    var num = (document.getElementById('numVal').value -1)+ 2; 
 
    numi.value = num; 
 
    var newdiv = document.createElement('div'); 
 
    newdiv.setAttribute('id',num); 
 
    var unum="'"+div+"','"+num+"'"; 
 
    newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />'; 
 
    ni.appendChild(newdiv); 
 
} 
 
//-Element 
 
function removeElement(divNum,div) { 
 
    var d = document.getElementById(div); 
 
    var olddiv = document.getElementById(divNum); 
 
    d.removeChild(olddiv); 
 
} 
 
</script> 
 

 
    <form> 
 
    <input type="hidden" value="0" id="numVal" /> 
 
    <div id="m"> 
 
     <div id="h125"> 
 
      <div class="fb"> 
 
       <input id="t" type="tel" placeholder="Tel."> 
 
       <img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" /> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    </form>

おかげ

+3

そのタイプミスの男! 'var olddiv = document.getElementsById(divNum);' –

+0

ty。まだ動作していません! –

+0

ラベルを使って 'div'を取り除いたり、入力したりするのはどうですか?すべての 'removeElement'関数呼び出しに 'h125'を渡します。また、同じ 'id =" t "'を持つ複数の入力を追加しようとしています。 – t1m0n

答えて

1

これはあなたが達成しようとしているものですか?もしそうなら、あなたはremoveElementの機能でIDを混ぜたとき。

//+Element 
 
function addElement(div) { 
 
    var ni = document.getElementById(div); 
 
    var numi = document.getElementById('numVal'); 
 
    var num = (document.getElementById('numVal').value -1)+ 2; 
 
    numi.value = num; 
 
    var newdiv = document.createElement('div'); 
 
    newdiv.setAttribute('id',num); 
 
    var unum="'"+div+"','"+num+"'"; 
 
    newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />'; 
 
    ni.appendChild(newdiv); 
 
} 
 
//-Element 
 
function removeElement(divNum,div) { 
 
    var d = document.getElementById(divNum); 
 
    var olddiv = document.getElementById(div); 
 
    d.removeChild(olddiv); 
 
}
<form> 
 
    <input type="hidden" value="0" id="numVal" /> 
 
    <div id="m"> 
 
     <div id="h125"> 
 
      <div class="fb"> 
 
       <input id="t" type="tel" placeholder="Tel."> 
 
       <img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" /> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    </form>

+0

ありがとうございます。私は幸運を言っていません あなたは成功しているので! –

1

document.getElementsById(divNum); 読んでください:のdocument.getElementById(divNumを);

あなたが削除する必要があります要素の後の 's'。 更新 申し訳ありませんが、私は私が答える前にテストしてください。 をaddElement(div)関数に宣言すると、変数名は逆順になります。それは読む必要がありますvar unum="'"+num+"','"+div+"'";

+0

ありがとうございました! –