1

問題が ujs ドライバーにあるのか jquery-validate プラグインにあるのかはわかりません...

jquery UJS ドライバー (最新、github から) + jquery-validate プラグイン (最新、github から) + ajax フォーム (data-remote タグ経由) を使用する場合、検証ルールは黙って無視されます。IE 8 でのみ、chrome と FF が正常に動作します。

github の最新の jquery-validation を使用して、jquery 1.4.4 および jquery 1.5.1 でテストされています。

簡単な例を次に示します: http://avioing.com/validate/example.htmlおよび http://avioing.com/validate/example_no_ujs.html

都市フィールドを空のままにして、フォームを送信してみてください。最初のケースでは何も起こりません。2 番目のケースでは、検証メッセージがトリガーされます。

2 つのファイルの唯一の違いは、後者のファイルのフォームから「data-remote」タグを削除し、検証がトリガーされるようになったことです。

4

2 に答える 2

1

これを問題として jquery-ujs/github に投稿し、jquery-ujs チームの助けを借りて、IE < 9、jquery、および jquery-ujs に関連する問題と、サブミット イベント バブリングが IE で処理される方法を特定しました。対他のブラウザ。

jquery-ujs チームは回避策を開発しました (こちらの議論を参照してください https://github.com/rails/jquery-ujs/pull/123 )。木。問題は、問題を jquery または jquery-ujs で修正する必要があるかどうかです。

当面は、github のプル リクエストに基づいて、この問題を回避するために rails.js に手動でパッチを当てることができると思います。

于 2011-03-11T18:34:38.367 に答える
0

ソリューションはteohmによってhttp://teohm.github.com/blog/2011/05/25/using-jquery-validation-in-rails-remote-form/に投稿されました

$('#submit_form').validate({

  submitHandler: function(form) {
    // .. do something before submit ..
    $.rails.handleRemote( $(form) );  // submit via xhr
    //form.submit();                  // don't use, it submits the form directly
  }

});

それが役に立てば幸い

于 2013-03-06T09:38:46.587 に答える