3

有什么方法可以创建重置按钮以清除 asp 形式的文本字段中的所有文本?当用户点击重置按钮时,他们输入的所有文本都将被清除,并且他们可以在该区域输入回文本。

4

7 回答 7

3

据我所知,Asp.Net 没有提供这样的重置功能。我们可以像这样实现重置

btnReset.Attributes.Add("onClick", "document.forms[0].reset();return false;");

或者像这样

<input type='button' id='resetButton' value='Reset' onclick='theForm.reset();return false;'/> 

或者OnClientclickasp.net 按钮使用这个theForm.reset();return false;

于 2012-07-13T04:34:02.007 回答
2

在按钮单击方法中,将所有 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

于 2012-07-13T04:21:52.887 回答
2

为控件创建一个Click事件Button并使用以下代码:

foreach (Control control in Page.Controls)
{
    if (control is TextBox)
    {
        TextBox txt = (TextBox)control;
        txt.Text = "";
    }
}

这将为您节省一些时间来清除 Web 表单中的所有文本框。

于 2012-07-13T04:22:13.313 回答
2

使用 Jquery 最简单的方法来查找任何类型的控件并且不会有回发事件。

$('input[type=text], textarea') 

使用 foreach 循环清除值。

于 2012-07-13T04:39:03.377 回答
2

试试这个创建一个带有重置的按钮并在点击事件中写入 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);
 }

}

于 2012-07-13T06:11:26.247 回答
0

请注意

btnReset.Attributes.Add("onClick", "document.forms[0].reset();return false;");

将无法清除回发的页面,即如果文本框的值“愚蠢的我”并且已被回发,则此代码将重置为回发值,即“愚蠢的我”。

解决方法是使用已清除的值重新发布页面 - 尝试以下代码(它对我有用)

OnClientClick="document.location.href=document.location.href;"

将使用已清除的值重新加载页面...

于 2012-09-05T19:04:01.580 回答
0

我的页面中有多种类型的输入(TextBox、DropDownList 和 CheckBox),所以这是我将它们全部重置的方法

  1. 放一个<asp:Panel>包装我的输入
  2. 运行BtnClear_Click清除按钮单击
  3. 循环每个输入并按类型重置文本/选择/检查值

代码

默认.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;
    }
}
于 2019-12-11T06:32:33.647 回答