0

私はJavaScriptが初めてです。ASP.NET を使用して Visual Studio で作業しており、単純なフォームを使用しています。フォームを検証する JavaScript 関数と、フォームをリセットする JavaScript 関数もあります。検証と送信は正常に機能します。しかし、フォームを送信した後、JavaScript のリセット機能が動作しません。また、通常の HTML 入力ボタンを使用してみましたが、機能しません。送信が成功する前は正常に機能しますが、送信後は機能しません。どんな助けでも大歓迎です。

function resetForm() {
      document.getElementById("accountForm").reset();
}

<asp:Button ID="subBtn" runat="server" Text="Submit" OnClientClick="return validateForm()" onclick="subBtn_Click" />
<asp:Button ID="rstBtn" runat="server" Text="Reset"  OnClientClick="resetForm()" oncClick="rstBtn_Click"/>
4

3 に答える 3

2

リセット ボタンには、クライアント側とサーバー側の両方のイベント ハンドラーがあります。これは必要ですか?次のようなクライアント側で機能するボタンを使用してフォームをリセットすることを検討してください。

<input type="reset" />
于 2012-07-03T00:47:08.677 に答える
1

どうやらフォームがリセットされているようですが、コントロールにはデフォルト値があるため、フォームがリセットされたときに設定されます。

リセット ボタンは、すべてのコントロールをデフォルト値にリセットします。すべてのフォーム コントロールに値がないようにデフォルトをクリアする場合は、次のようにすべてのデフォルト値をクリアする必要があります。

function clearForm(form) {
  var control, controls = form.elements;

  for (var i=0, iLen=controls.length; i<iLen; i++) {
    control = controls[i];

    // Don't change value of submit or reset buttons
    if (control.type != 'submit' && control.type != 'reset') {

      if (control.tagName.toLowerCase() == 'select') {

        for (var j=0, jLen=control.options.length; j<jLen; j++) {
          control.options[j].defaultSelected = false;
        }             

      } else if (control.defaultChecked) {
        control.defaultChecked = false;

      } else {
        control.defaultValue = '';
      }
    }
  }
  // Now reset the form
  form.reset();
}

フォームへの参照を関数に渡すと、リセット ボタンは次のようになります。

<input type="reset" onclick="clearForm(this.form);">
于 2012-07-03T00:49:17.443 に答える
0

フォームをリセットします。送信後のフォームの初期状態には値があります。

reset
フォーム要素のデフォルト値を復元します。リセット ボタンと同じアクションを実行します。

スペック

必要に応じて、JavaScript コードを記述してすべての入力をクリアできます。

var e = document.getElementsByTagName('input');
for (var i = 0; i < e.length; i++){
    e[i].value = "";
}

jQueryを使用できる場合は、はるかに簡単です。

$('input[type="text"], textarea, select').val('');
于 2012-07-03T00:28:02.127 に答える