0

私は ajax 検証を無効にしましたが'enableClientValidation'=>true 、フォームには入っています。セッションはデータベースに保存されます。では、Yii が別のフィールドにフォーカスする際に Captcha フィールドをチェックする方法を教えてください。net-> all firebug タブに変更が見られません。

4

3 に答える 3

0

クライアント側の検証では、Ajaxを使用する代わりに、データを検証するJavaScriptコードをページの下部に配置します。クライアント側に回答を保存せずにJavaScriptを使用してキャプチャを検証する方法はないため、Ajaxを使用しない限りこれは不可能です。ただし、Yiiが提供する組み込みのキャプチャは、Ajax検証が有効になっている場合でも、フォームの送信時にのみ検証されます。

http://www.yiiframework.com/doc/api/1.1/CActiveFormそれは述べています...

AJAX検証サポートに関してCActiveFormにはいくつかの制限があります。まず、ファイルアップロードフィールドで検証しません。次に、サーバー側の状態変化を引き起こす可能性のある検証を実行するために使用しないでください。たとえば、適切ではありません。 CCaptchActionによって実行されるCAPTCHA検証を実行するため。これは、検証要求ごとにテストの数が1つ増えるためです。第三に、現時点では表形式のデータ入力で動作するようには設計されていません。

したがって、クライアント側でキャプチャを検証する場合は、Ajaxを使用する必要があります。この機能は、Yiiではデフォルトで提供されていないため、自分でプログラムする必要があります。

于 2012-08-28T01:21:19.683 に答える
0

を呼び出さないと、Ajax/クライアント側の検証は機能しません$form->error()

ajax 検証またはクライアント側検証を使用する場合は、必ず ..

$form->error($model, 'field')

..ライブ検証が必要な各フィールドのビュー ファイル。

それがあなたの問題を解決することを願っています。

于 2012-09-13T06:04:52.313 に答える