有什么方法可以创建重置按钮以清除 asp 形式的文本字段中的所有文本?当用户点击重置按钮时,他们输入的所有文本都将被清除,并且他们可以在该区域输入回文本。
7 回答
据我所知,Asp.Net 没有提供这样的重置功能。我们可以像这样实现重置
btnReset.Attributes.Add("onClick", "document.forms[0].reset();return false;");
或者像这样
<input type='button' id='resetButton' value='Reset' onclick='theForm.reset();return false;'/>
或者OnClientclick
asp.net 按钮使用这个theForm.reset();return false;
在按钮单击方法中,将所有 textbox.text.length 值设置为 0。要么一个一个地进行,这是简单的方法,要么通过获取页面上所有 textbox 类型的控件来进行,这有点复杂,但可能会少得多,具体取决于文本框的数量。绝对更易于维护。
private void ChangeBtn_Click(object sender, EventArgs e)
{
foreach(Control c in Page.Controls)
{
if (c.Controls.Count > 0)
{
foreach(Control c2 in c.Controls)
{
if (c2.GetType().ToString() == "System.Web.UI.WebControls.TextBox")
{
myspan.InnerHtml = ((TextBox)c2).Text;
((TextBox)c2).Text = ""; //or ((TextBox)c2).Text.Length = 0;
}
}
}
}
}
http://msdn.microsoft.com/en-us/library/20zys56y(v=vs.90).aspx
为控件创建一个Click
事件Button
并使用以下代码:
foreach (Control control in Page.Controls)
{
if (control is TextBox)
{
TextBox txt = (TextBox)control;
txt.Text = "";
}
}
这将为您节省一些时间来清除 Web 表单中的所有文本框。
使用 Jquery 最简单的方法来查找任何类型的控件并且不会有回发事件。
$('input[type=text], textarea')
使用 foreach 循环清除值。
试试这个创建一个带有重置的按钮并在点击事件中写入 ClearInputs(Page.Controls); 并且事件将调用此方法。
protected void Button2_Click(object sender, EventArgs e)
{
ClearInputs(Page.Controls);
}
void ClearInputs(ControlCollection ctrls)
{
foreach (Control ctrl in ctrls)
{
if (ctrl is TextBox)
((TextBox)ctrl).Text = string.Empty;
ClearInputs(ctrl.Controls);
}
}
请注意
btnReset.Attributes.Add("onClick", "document.forms[0].reset();return false;");
将无法清除回发的页面,即如果文本框的值“愚蠢的我”并且已被回发,则此代码将重置为回发值,即“愚蠢的我”。
解决方法是使用已清除的值重新发布页面 - 尝试以下代码(它对我有用)
OnClientClick="document.location.href=document.location.href;"
将使用已清除的值重新加载页面...
我的页面中有多种类型的输入(TextBox、DropDownList 和 CheckBox),所以这是我将它们全部重置的方法
- 放一个
<asp:Panel>
包装我的输入 - 运行
BtnClear_Click
清除按钮单击 - 循环每个输入并按类型重置文本/选择/检查值
代码
默认.aspx
<asp:Panel ID="PanelReport" runat="server">
...
<asp:TextBox ID="fldSpeedoMula" runat="server"></asp:TextBox>
<asp:DropDownList ID="ddlPlateNo" runat="server" CssClass="form-control"></asp:DropDownList>
<asp:CheckBox ID="cbCard" runat="server" />
<asp:CheckBox ID="cbCash" runat="server" />
<asp:Button ID="BtnClear" runat="server" Text="Clear" CssClass="button" OnClick="BtnClear_Click"/>
...
</asp:Panel>
默认.aspx.cs
protected void BtnClear_Click(object sender, EventArgs e)
{
// Clear all inputs
foreach (DropDownList ddl in PanelReport.Controls.OfType<DropDownList>())
{
ddl.SelectedIndex = 0;
}
foreach (TextBox fld in PanelReport.Controls.OfType<TextBox>())
{
fld.Text = string.Empty;
}
foreach (CheckBox cb in PanelReport.Controls.OfType<CheckBox>())
{
cb.Checked = false;
}
}