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

これを試して、リセット付きのボタンを作成し、クリックイベントで 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 に答える
2

Jquery を使用すると、任意のタイプのコントロールを簡単に見つけることができ、ポスト バック イベントは発生しません。

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

値をクリアするには foreach ループを使用します。

于 2012-07-13T04:39:03.377 に答える
2

ボタン クリック メソッドでは、すべての textbox.text.length 値を 0 に設定します。簡単な方法である 1 つずつ行うか、ページ上のテキスト ボックス タイプのすべてのコントロールを取得することによって行います。これは少し洗練されています。 、しかし、テキストボックスの数によっては、入力がはるかに少なくなる可能性があります. 間違いなくメンテナンス性が向上します。

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 に答える
0

その点に注意してください

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

ポストバックされたページをクリアすることはできません。つまり、テキスト ボックスに値 "Silly me" があり、ポストバックされた場合、このコードはポスト バックの値である "Silly me" にリセットされます。

回避策は、値をクリアしてページを再投稿することです-次のコードを試してください(私にとってはうまくいきました)

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

クリアされた値でページをリロードします...

于 2012-09-05T19:04:01.580 に答える