0

私は自分のフォームに jquery livevalidations を使用しており、このフォームには :remote => true も使用しています。フォームを送信している間、livevalidations はフィールドのエラーを表示しますが、フォームも送信されます。そして、サーバー側の検証アクションにより、ロールバックが取得されます。

:remote => true を任意のフォームに使用している場合、ライブバリデーションは機能しません。

4

1 に答える 1

2

あなたの説明から、フォームの検証が適切に機能していることは明らかです。ただし、フォームに送信ボタンがあるため、検証に失敗しても送信されます。

フォームから送信ボタンを削除し、シンプルなボタンにする必要があります。その単純なボタンをクリックすると、フィールドを検証する必要があり、すべて問題がなければ、jquery コードからフォームを送信します。また、すべてのフィールドが適切に検証されていない場合は、false を返す必要があります。

jquery 検証部分で preventDefault() 関数を使用して、送信されるフォームを制限することもできます。

古いバージョンのブラウザーを提供しない場合は、単純に html5 検証を使用できます。require => trueビューを挿入するだけで完了です。

于 2014-09-19T07:13:47.190 に答える