大家在做用戶信息注冊的時候,想必當注冊信息錯誤的時候會有清除所有填寫的信息,讓注冊者重新填寫的一種可能。而這個清除用戶input內容的功能如何實現呢?
今天我就來分享分享。
首先:使用最原始最簡單的C#后台代碼來實現
1. 清除界面上所有textbox的text內容
細想一下它無非就是遍歷界面上的所有控件,如果是textbox則清除它的text內容。
具體實現方法見下:
foreach(control co in panel1.Controls) { if(co.getType()=="textBox") { co.text ="" } }
這種方法是錯誤的,無法調用text屬性。
正確的方法應該是:
public void ClearPanel1() { FieldInfo[] infos = GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance); for (int i = 0; i < infos.Length; i++) { if (infos[i].FieldType == typeof(TextBox)) { ((TextBox)infos[i].GetValue(this)).Text = ""; } } }
這是采用C#后台代碼來實現清空textbox的text內容。這樣寫會給服務器帶來很大的負擔,為什么不寫到客戶端呢?
下面是采用客戶端來實現的:
function ClearAllText(){ var TextBox = document.getElementsByTagName("INPUT"); for(var Count=0;Count<TextBox.length;Count++) { if(TextBox[Count].type.toUpperCase() == "TEXT") { TextBox[Count].value = ""; } }
此方法是清除界面上所有的textbox內容。
而下面一種則是我認為比較好的一種,通過<div>將頁面快包起來,當需要清除的時候清除<div>中的textbox的text內容就可以了,如此這不會清空整個頁面的。
具體實現方法如下:
<script type="text/javascript"> function $(id) { return document.getElementById(id); } function ClearText() { var nodes = $("DivPanel1").childNodes; for (var i = 0; i < nodes.lengeth; i++) { if (nodes[i].type.toUpperCase()=="TEXT") { nodes[i].value = ""; } } } </script>