2011-01-24 42 views
7

私のasp.net mvcページで、特定の入力フィールドをリセットし、すべてのエラーメッセージをクリアする「クリア」ボタンが必要です。入力をクリアするのは良いですが、検証メッセージがasp.net mvc javascriptによって生成されるため、それらをクリアする方法がわかりません。jQueryでASP.Net MVC検証メッセージをクリア

更新: これは私のためにうまくいった。

$(".field-validation-error").empty(); 
+0

消去するサーバー側のエラーメッセージですか? –

+0

私は彼らがクライアント側で生成されたと思ったが、私はちょうどフィドラーをつかんで、結局サーバ側で生成されている。再提出をせずにクライアントのボタンを押してもそれらを削除できればいいですね。 – sipwiz

答えて

4

ブラウザで生成されたhtmlコードを表示してjqueryで空にするだけです。

  • 通常のポストバックempty()

    は、生成されたコードを検索するには、ブラウザでページの「ソースコード」を表示し、エラーメッセージを探してください。親divを見つけてそれを空にします。
  • アヤックスコール:Chromeの要素を右クリックして検査します(他の現代のブラウザでは、別の方法で呼び出すが、ツールは必要です)。これは、現在の状態(ajax呼び出しの後)で生成されたhtmlを提供します。親divを見つけて空にします。

・ホープこのことができます

0

リセット入力ボタンを助けることができる持ってますが、フォームがにロードされたときにのみ、その状態に戻ってフォームをリセットします。

私はすべての値をリセットしたいときは、通常はハイパーリンクをリセットボタンとして使います。誰かがクリックすると、フォームに対する新しいGETリクエストが行われます。 GET要求に対するコントローラのアクションはまったく新しい空のモデルを返すだけなので、「クリア」ボタンと同じ効果があります。

+0

はい、それは最も簡単な方法かもしれませんが、私はまだそれがクライアント側を行う方法があるかどうかを知りたいと思うでしょう。 – sipwiz

+0

ええ、おそらく私はあなたのタイトル「jQueryで」を読んでいたはずです。 – danludwig

1

あなたが任意のjQueryオブジェクトを呼び出すことができ、シンプルで再利用可能なjQueryの機能:

$.fn.clearErrors = function() { 
    $(this).each(function() { 
     $(this).find(".field-validation-error").empty(); 
     $(this).trigger('reset.unobtrusiveValidation'); 
    }); 
}; 

使用法:

question.clearErrors(); 

オリジナルの答え:https://stackoverflow.com/a/16165831/114029

1
$('.field-validation-error').text("") 
+2

他の読者に役立つように、あなたの答えにいくつかの説明を加えてください。 –