2012-04-11 10 views
0

"body"タグ内にリンクがあるページがあります。
リンクが挿入されると、次のビューがfancyboxにレンダリングされます。Yiiクライアント側の検証が機能しません

<div class="form"> 
    <?php 
       $model = new User; 
     $model->scenario='registration'; 
     $form=$this->beginWidget('CActiveForm', array(
     'id'=>'signup-form', 
       'action'=>'/signup/', 
     'enableClientValidation'=>true, 
     'clientOptions'=>array(
      'validateOnSubmit'=>true, 
     ), 
    )); ?> 

     <p class="note">Fields with <span class="required">*</span> are required.</p> 

     <div class="row"> 
      <?php echo $form->labelEx($model,'username'); ?> 
      <?php echo $form->textField($model,'username'); ?> 
      <?php echo $form->error($model,'username'); ?> 
     </div> 

     <div class="row"> 
      <?php echo $form->labelEx($model,'password'); ?> 
      <?php echo $form->passwordField($model,'password'); ?> 
      <?php echo $form->error($model,'password'); ?> 
     </div> 


     <div class="row buttons"> 
      <?php echo CHtml::submitButton('sign up',array('name'=>'submit')); ?> 
     </div> 

    <?php $this->endWidget(); ?> 
    </div><!-- form --> 

上記のコードは、fancyboxクライアント検証スクリプトが正しく挿入されていますが、fancyboxであるとき、何jQueryの検証機能は、ページに挿入されていないことなく、挿入されたとき。
何が問題なのですか?
(siteControllerコードは目的にここに挿入されています)

答えて

1

あなたの問題は、どのようにHTMLをFancyboxに送信するのでしょうか。あなたがrenderPartialを(user1248203で示唆されているように)行う場合は、renderPartialが送り返されたビューを後処理していることを確認する必要があります(後処理には、ビュー自体と共にレンダリングするjavascript/cssファイルが含まれます)。あなたは後処理を行うとき、あなたはあなたのFancyboxのためのJavascript(そしておそらくjQueryの、など)が送信されていないことを確認する必要があります。注意すべきCController page

もうひとつ上の

詳細情報再び。それは本当に混乱する問題を引き起こす可能性があります。 Ajaxを介して再送信されてからファイルを保つために、これを使用する:

Yii::app()->clientScript->scriptMap['jquery.js'] = false; 
Yii::app()->clientScript->scriptMap['jquery.min.js'] = false; 
Yii::app()->clientscript->scriptMap['jquery-ui.min.js'] = false; 
etc. 

はまた、あなたは、devのサーバー上でデバッグしているとき(YII_DEBUGをtrueに設定して)そのjquery.jsが送信されますが、jqueryの。 min.jsは運用サーバー(YII_DEBUGがfalseに設定されている)で送信されます。それは私を噛まれました:-)それはframework/web/js/packages.php

+0

であなたが正しいことを定義することができます:renderPartialの後処理は設定されていません(デフォルト値はfalse) – lvil

+0

助けてくれて嬉しいです – acorncom

0

コードはAjax呼び出し(renderPartial)から呼び出されますか、それともダイレクトと呼ばれていますか? Ajaxの呼び出し(renderPartial)はではなく、にはjavascriptの検証機能が含まれています。

関連する問題