大家在做用戶信息注冊的時候,想必當注冊信息錯誤的時候會有清除所有填寫的信息,讓注冊者重新填寫的一種可能。而這個清除用戶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>
