1

私はasp.net mvc 3、jquery validate、妨げのないjavascriptとデータ注釈を使用しています。Datannotations + asp.net mvc 3 +クライアント側のバリデーション(フォーム送信が行われるまでキックインしません)

私はあなたがテキストボックスAで必要としていることを言い、そこからクリックすることに気付きました。 javascriptが起動していないようです。送信ボタンをクリックすると、検証がポップアップします。

次に、テキストボックスAに戻り、入力を開始すると、検証は終了します。したがって、クライアント側の検証が機能しています。

私はすぐにクライアント側の検証を取得するために離れているのだろうか?

答えて

3

ここでは何が起こっているのか、その理由を説明します。

  1. テキストボックスは空白として開始します。あなたはタブイン/アウトし、妥当性検査は行われません(提出しない限り)
  2. いくつかの値を入力します。あなたはタブを押した時点で検証が実行されます(ただし、テキストボックスには値がありエラーはありません)
  3. テキストボックスに戻って値をクリアします。あなたがタブアウトし、今あなたは検証メッセージを受け取ります。

理由は、ユーザーが最初に入力を開始するフィールドを決定できないため、フォーム全体にエラーがポップアップしないようにするためです。

+0

まあ検証エラーがポップアップべきではないページが読み込まアップ:あなたはこの動作を変更したい場合は、必ずjquery.validateプラグインを使用してカスタム検証ルールおよびオプションを書くことができます。しかし、ユーザーがボックスをクリックしてから葉が出ると、それがポップアップするはずです(jqueryの検証を使用していることを意味します)。 – chobo2

1

これは、ASP.NET MVC 3の邪魔にならないクライアント側の検証がどのように実装されたかを示しています。

$('#myForm').validate({ 
    rules: { 
     name: { 
      email: true 
     } 
    } 
}); 
+1

これを変更するための設定を追加する方法はありませんか?注釈を使用する目的を破るため、あなたが上にしたことをしたくありません(コードを1箇所に書くだけです) – chobo2

関連する問題