2

MVC4 と JQuery の検証に苦労しています。

横に検証メッセージが表示されたかなりの数のテキストボックスがあります。

それらすべてに有効なメッセージを入力すると、メッセージはすべて消えます。しかし、私がするとき:

var valid = $('form').valid();

常に false を返します。からこれを取得しました(フォームが有効な場合にのみjQuery関数を起動する方法

フォームのどこがまだ間違っているのかわかりません。フォームのエラー メッセージを取得する方法はありますか?

ここで説明されているように、validate() で表示エラーを接続しようとしました。

Jquery validate showerrors表示名

ただし、これにより情報が入力されることはありません。私がテストするとき、私はすべての入力ボックスの変更にこれを置きます:

   if ($('form').valid()) {
      alert('the form is valid');
   }
   else if(!$('form').valid()) {
       alert('the form is NOT valid');                                
   }

ただし、常に NOT valid が返されます。

編集

オンライン サンプルを作成しようとしていました (webdeveloper の要求による)。Chrome は HTML の一部を隠していました (jquery タブ コントロールを使用)。ソースを取得するためにIEに行き、検証が機能しました。その後、FFで試してみましたが、うまくいきました。そのため、Chrome でのみ壊れているようです。

編集2

jsfiddle.net ページを作成しました: http://jsfiddle.net/qN3Cn/1/

IE では、フォームは有効な値を返しますが、クロムでは有効ではありません。

4

2 に答える 2

4

非表示フィールドのエラーである可能性があります。コンソールですべてのエラーを表示できます。

$('form').validate().errorList
于 2012-09-21T16:13:26.763 に答える
1

それは隠されたフィールド(hiddenfor)に降りてきました。ポストバックのモデルのページに隠されていた日付がありました。Chromeは、アメリカにないときはうまく再生するのが好きではありません。これをweb.configに入れる必要がありました

 <system.web>
      <globalization culture="en-GB" uiCulture="en-GB"/>

Thread.CurrentThread.CurrentUICultureが正しく設定されると、物事はうまく機能しました。

于 2012-09-24T13:44:17.320 に答える