suntg 2011-10-17 18:37:02 4026次浏览 8条回复 0 0 0

我以为这样写, 可是不行

return array(
    'title'=>'Please provide your login credential',
    'id' => 'login-form',
    'enableAjaxValidation' => true,
    'clientOptions' => array('validateOnSubmit'=>true)  ,
    'elements' => .....
)

谢谢!

  • 回复于 2011-10-17 18:40 举报

    在控制器中加上:
    $this->performAjaxValidation($model);

  • 回复于 2011-10-17 22:33 举报

    谢谢,
    可是我没找到这个函数 performAjaxValidation?

  • 回复于 2011-10-18 08:34 举报

    这个方法里面就是这样子:

    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
    
  • 回复于 2011-10-18 09:34 举报

    找不到没关系统,会用就行了,很少去了解这些函数长什么样的。

  • 回复于 2011-10-18 10:21 举报

    哈哈, 我的意思是说框架里没 performAjaxValidation 这个函数, 运行时出错

  • 回复于 2011-10-18 10:29 举报

    谢谢各位, 可是没效果, 我用的是 表单生成器CForm, 不是用CActiveForm, 好像 CActiveForm 的方法在 CForm 裡不適用

  • 回复于 2011-10-18 11:15 举报
    /**
     * Performs the AJAX validation.
     * @param CModel the model to be validated
     */
    protected function performAjaxValidation($model)
    {
        if(isset($_POST['ajax']) && $_POST['ajax']==='extension-form')
        {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }
    }
    
  • 回复于 2011-10-18 11:25 举报

    谢谢,
    刚才看了手册, CForm 有个 activeForm的属性,
    在 views/site/loginForm.php 加上
    'activeForm'=>array('id' => 'extension-form', 'enableAjaxValidation' => true),
    完整代码

    <?php
    return array(  
        'activeForm'=>array(
            'id' => 'extension-form', 
            'enableAjaxValidation' => true
        ),
        'elements'=>array(
            'username'=>array(
                'type'=>'text',
                'maxlength'=>32,
            ),
            'password'=>array(
                'type'=>'password',
                'maxlength'=>32,
            ),
            'rememberMe'=>array(
                'type'=>'checkbox',
                'enableAjaxValidation'=>false,
            )
        ),
        'buttons'=>array(
            'login'=>array(
                'type'=>'submit',
                'label'=>'Login',
            ),
        ),
    );
    

    再在控制器里加上舰长的代码就可以实现CForm Ajax验证了

您需要登录后才可以回复。登录 | 立即注册