簡體   English   中英

Yii客戶端驗證不起作用

[英]Yii client side validation doesn't work

在“ body”標簽內有一個帶有鏈接的頁面。
插入鏈接后,fancybox中將呈現以下視圖。

<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代碼)

您的問題很可能是您將HTML發送到Fancybox的方式。 如果您執行renderPartial(由user1248203暗示),則需要確保您對renderPartial進行了后處理,以將視圖發回(后處理包括要呈現的javascript / css文件以及視圖本身)。

CController頁面上的更多信息

需要注意的另一件事:進行后期處理時,您需要確保您的Fancybox(可能還有jQuery等)的Java語言不會再次發回。 它可能會引起一些真正令人困惑的問題。 為了防止通過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.

還要注意,當您在開發服務器上調試時將jquery.js發送(將YII_DEBUG設置為true),而將jquery.min.js在生產服務器上發送(其中YII_DEBUG設置為false)。 這讓我很傷心:-)您可以在framework / web / js / packages.php中看到它的定義。

是從Ajax調用(renderPartial)調用代碼,還是直接調用代碼? Ajax調用(renderPartial) 包括javascript驗證功能,僅包括整個頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM