大家在做用户信息注册的时候,想必当注册信息错误的时候会有清除所有填写的信息,让注册者重新填写的一种可能。而这个清除用户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>
浙公网安备 33010602011771号