0

私はこのリンクをたどっています

ダイナミック テキスト ボックスを追加します。しかし、私の問題は、2 番目のテキスト ボックスに値を挿入し、次のテキスト ボックスのボタンを押すと、2 番目のボックスの値が消去されることです。そのため、送信フォームを使用できません。それを修正する方法はありますか?

HTML

<table style="width:500px;height:auto;">
<tr>
<th>Code-1</th>
<td><input type="text" name="code1" id="code"></td><td><input type="button" value="Add New Code" onClick="insert()"></td>
</tr>
<tr>
<th>Custom Markup-1</th><td>
<input type="text" name="markup1" id="markup"></td></tr>
<tr><th>Vendor-1</th><td>
<select id="v" name="v1">
<option value="0">Please Select..</option>
<?
while($v= mysql_fetch_array($vendor))
{
    echo "<option value=".$v['id'].">".$v['name']."</option>";
}
?>
</select></td>
</tr>
</table>

JS

<script language="javascript">
var i = 1;
function insert()
{
new_div.innerHTML = new_div.innerHTML +"<tr><th>Code-"+(i+1)+"</th><td><input type='text' id='code"+(i+1)+"' name='code"+(i+1)+"'></td></tr>";
new_div.innerHTML = new_div.innerHTML +"<tr><th>Custom Markup-"+(i+1)+"</th><td><input type='text' name='markup"+(i+1)+"'/></td></tr>";
new_div.innerHTML = new_div.innerHTML +"<tr><th>Vendor-"+(i+1)+"</th><td><select id='v'+i name='v"+(i+1)+"'><option value='0'>Please Select..</option><?php while($v= mysql_fetch_array($vendorInfo)){?><option value='<?php echo $v['id']; ?>'><?php echo $v['name']; ?></option><?php }?></select></td></tr>";
new_div.innerHTML = new_div.innerHTML +"<tr><td><hr></td><td><hr></td></tr>";
//document.getElementById('code2').value=document.getElementById('code2').value;
i++;
}
</script>
4

3 に答える 3

0

ドロップダウンの場合:

var slId=1;
            function options(name,value){

                 var o=document.createElement("option");
                 o.setAttribute("value",value);
                 o.innerHTML=name;
                 return o;

            }
            function addDropDown(){
                  var div=document.getElementById("tbSet");
                var sl=document.createElement("select");                 
                 var o=options("Hello","hi");            
                 sl.setAttribute("id","sl"+(slId++));
                 sl.appendChild(o);                 
                 div.appendChild(sl);
            }
于 2013-11-15T06:14:00.233 に答える
0

innerHtml でテキスト ボックスを追加しないでください。追加すると3回目以降のデータは消去されます。createElement を実行してから、子を追加します。

 function addTB(){
                var div=document.getElementById("tbSet");
                var txt=document.createElement("input");
                txt.setAttribute("type","text");
                txt.setAttribute("id","tb"+(txtBId++));                
                var br=document.createElement("br");
                div.appendChild(br);         
                div.appendChild(txt);
     }
于 2013-11-15T06:00:30.327 に答える