0

プロジェクトの 1 つで Yii フレームワークを使用しています。jQuery フォーム プラグインを Yii クライアント側の組み込み検証と一緒に使用したいと考えています。

私はそれらを一緒に働かせることができません。jQuery form pluginこの単純な js コードでセットアップした場合:

$('#myform-id').ajaxForm();

クライアント側の検証が実行されますが、検証が失敗してもフォームの送信は停止しません。これは、Yii クライアント側検証ライブラリと jQuery フォーム プラグインの両方が、フォームで同じ「送信」イベントをバインドするという事実に関連していると思います。

参考までに、FireBug と Chrome コンソールで js エラーがないことを再確認しました。

誰かが同じ問題を経験し、それを解決したのだろうか。

4

3 に答える 3

5

私はこのように解決しました:

Yii アクティブ フォームの初期化コード:

<?php $form = $this->beginWidget('CActiveForm', array(
    'id'=>'user-form',
    'enableClientValidation'=>true,
    'clientOptions' => array(
         'validateOnSubmit'=>true,
         'validateOnChange'=>false,
         'afterValidate'=>'js:submiAjaxForm'
     )
)); ?>

そして、同じページで、jquery フォーム プラグインを介してフォームを送信するために、この js コードを追加しました。

function submitAjaxForm(form, data, hasError)
{
   if(!hasError)
   {
       $('#user-form').ajaxSubmit(
       {
           // ajax options here
       });
   }
}
于 2012-02-21T16:02:07.447 に答える
0

送信イベントで伝播を停止してみてください:

$('#your-form').submit(function(e){
      e.stopPropagation();
      ... some other code ...
});
于 2012-02-21T12:10:40.813 に答える