簡體   English   中英

使用JavaScript動態生成文本框

[英]dynamically generate textboxes using JavaScript

我想根據用戶輸入動態生成文本框。 如果用戶在文本框中輸入整數值,如果他/她輸入5,則我想生成5個文本框。 該代碼在Firefox中有效,但在IE和Netscape中無效; 請幫助我如何執行此操作,或向我指出此代碼中的其他任何錯誤。 另外,我們使用的技術是Struts 2。
請幫我。

JavaScript代碼:

function generate()
{
  var tot = document.getElementById("totmob").value;
  var tbl = document.getElementById("sim");

for(var i =1;i<=tot;i++)
{
  tbl.innerHTML  = 'Mobile No'+i+' <input type="text"  size = "20" maxlength= "20" name= hoardingregister.mobileno> <br> \n';
}

HTML代碼:

<td>
<s:textfield id="totmob" label="Total Mobile Number"  />
<td>
<td>
<input type="button"  value="ADD" onclick="generate()"/>
</td>
</tr>
</table>
<div id="sim">
</div>
for(var i =1;i<=tot;i++)
{
  tbl.innerHTML  = 'Mobile No'+i+' <input type="text"  size = "20" maxlength= "20" name= hoardingregister.mobileno> <br> \n';
}

應該

for(var i =1;i<=tot;i++)
{
  tbl.innerHTML  += 'Mobile No'+i+' <input type="text"  size = "20" maxlength= "20" name= hoardingregister.mobileno> <br> \n';
}

因為您需要附加到內部HTML而不是替換它。

您還使用了<td>而不是</ td>

但是,如果您在不刷新頁面的情況下更改文本框中的值,則會在先前添加的文本框之后添加更多文本框。 但是,每當我們更改文本框中的值時,都是錯誤的,只應添加新文本框的數目,而不是保留先前的文本框。 能否根據我說的條件更改編碼。

您可以嘗試InnerHtml以外的其他方法嗎?

  • 使用GetElementByID獲取要向其添加文本框的元素
  • 如果需要,刪除任何現有的子項
  • 將文本框作為子項添加到所選節點

從您的JavaScript代碼來看,您應該使用以下代碼:

tbl.innerHTML  +=

代替

tbl.innerHTML  =

在for循環中。

下面的代碼非常適合我在IE和Firefox中使用。 當您說這不起作用時,您是什么意思?

function generate()
{
  var tot = document.getElementById("totmob").value;
var tbl = document.getElementById("sim");

for(var i =1;i<=tot;i++)
{
  tbl.innerHTML  = tbl.innerHTML  +'Mobile No'+i+' <input type="text"  size = "20" maxlength= "20" name= hoardingregister.mobileno> <br> \n';
}

}
</script>
<body>
<table>
<tr>
    <td>
        <span>Total Mobile Number  </span>
        <input type="text" id="totmob" />
    <td>
    <td>
    <input type="button"  value="ADD" onclick="generate()"/>
    </td>
</tr>
</table>
<div id="sim">
</div>
</body>
</html>

將唯一標識符添加到輸入名稱或唯一ID。

喜歡:

for(var i =1;i<=tot;i++)
{
  tbl.innerHTML  += 'Mobile No'+i+' <input type="text"  size = "20" maxlength= "20" name= hoardingregister.mobileno'+i+'> <br> \n';
}

或者您將id放入其中,例如:

ID = “輸入” + I

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM