動態在頁面上增加或刪除一個文字框

來源:互聯網
上載者:User
動態|文字框|頁面

在web開發中,經常會遇到這樣的問題:
怎麼樣動態在頁面上增加或刪除一個文本輸入框?
通常有兩種方法:
1.利用後台服務:比如
在session中設定一個變數num,每點一次"增加"按鈕num的值+1,然後頁面重新整理一下(返回該頁面)。
顯示的時候從session中取到num的值,然後使用迴圈產生input框
<% for(int i;i<num;i++)){ %>
<input type="text" name="aaa"/>
<% } %>
刪除的情況和此相似,就是點擊"刪除"按鈕後,num的值-1,然後重新整理頁面.
這種方法的確可以實現動態增加或刪除一個文本輸入框,只是你先前在頁面上填寫的東西都沒有了.並且需要後台伺服器的處理,速度也有一定影響.這不是很好的方法
2.利用頁面指令碼,如javascript實現.
javascript由於是運行在用戶端,速度自然不成問題,並且你先前在頁面上填寫的東西並不會因為你的增加或刪除文本輸而丟失,使用非常方便,下面給出例子:
<HTML>
<Head>
<Script Language=JavaScript>
function insertRow(isTable){
 index = isTable.rows.length;
 nextRow = isTable.insertRow(index);
 isText = nextRow.insertCell(0);
 txtArea = nextRow.insertCell(1);
 index++;
 index = index.toString();
 nameStr = "item"+index;
 txtStr = "Item "+index;
 isText.innerHTML = txtStr;
 txtArea.innerHTML = "<input type=text name="+nameStr+" size=5>";
}

</Script>
</Head>
<Body>
<Form name='Form1'>
<Table id='dynTable' cellpadding=5 cellspacing=5 border=1>
<TR><TD> Item 1</TD><TD><input type="text" name="item1" size="5"></TD></TR>
<TR><TD> Item 2</TD><TD><input type="text" name="item2" size="5"></TD></TR>
<TR><TD> Item 3</TD><TD><input type="text" name="item3" size="5"></TD></TR>
</Table>
</Form>
<input type=button value="Insert row" >
</Body>
</HTML>

下面在給個功能更全的例子:

<html>
<head>
<title>My Test Page</title>
<script type="text/javascript">
<!--
var textNumber = 1;
function addTextBox(form, afterElement) {
  // Increment the textbox number
  textNumber++;
  // Create the label
  var label = document.createElement("label");
  // Create the textbox
  var textField = document.createElement("input");
  textField.setAttribute("type","text");
  textField.setAttribute("name","txt"+textNumber);
  textField.setAttribute("id","txt"+textNumber);
  // Add the label's text
  label.appendChild(document.createTextNode("Text Box #"+textNumber+": "));
  // Put the textbox inside
  label.appendChild(textField);
  // Add it all to the form
  form.insertBefore(label,afterElement);
  return false;
}
function removeTextBox(form) {
  if (textNumber > 1) { // If there's more than one text box
    // Remove the last one added
    form.removeChild(document.getElementById("txt"+textNumber).parentNode);
    textNumber--;
  }
}
//-->
</script>
<style type="text/css">
<!--
label {
  display:block;
  margin:.25em 0em;
}
-->
</style>
</head>
<body>
<form id="myForm" method="get" action="./" />
  <label>Text Box #1: <input type="text" name="txt1" id="txt1" /></label>
  <p>
    <input type="button" value="Add Textbox" />
    <input type="button" value="Remove Textbox" />
  </p>
  <p><input type="Submit" value="Submit" /></p>
</form>
</body>
</html>

上面的兩個例子基本上可以滿足增加或刪除一個文本輸入筐的要求了吧?特此存檔.也希望對大家有協助.



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。