【问题标题】:Yii- client side validation is not working on CActiveFormYii-客户端验证不适用于 CActiveForm
【发布时间】:2014-06-03 11:05:58
【问题描述】:

我的应用程序中有一个活动表单。但是客户端验证不起作用。表单代码如下:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'application-data-student-form',
    'enableAjaxValidation'=>false,
    'enableClientValidation'=>true,
    'clientOptions'=>array('onSubmit'=>true),
    'htmlOptions'=>array(
        'enctype'=>'multipart/form-data',
        'role'=>'form',
        'class'=>'form-horizontal'
    ),
)); ?>

我在我的项目中使用了 bootstrap 3。任何想法或解决方案都会受到任何人的高度赞赏。 . .

【问题讨论】:

  • 你能显示完整视图代码,模型rules方法和控制器动作代码吗?
  • 控制器和模型由 crud 生成。所以,我认为这些没有问题。我只想验证必填字段。
  • 那么视图(如何生成表单字段)呢?
  • 表单字段也是crud生成的。我在我的项目中使用引导程序。对默认的js文件有影响吗?
  • 确保验证所需的所有js文件(jquery.yiiactiveform.js)都在页面上并且没有冲突!用萤火虫检查!

标签: javascript php twitter-bootstrap yii client-side-validation


【解决方案1】:

我终于解决了这个问题。我发布这个是为了帮助遇到同样问题的人。

问题是由于 jquery.js 没有在应用程序中正确加载引起的。缺少 jquery.js 所需的地图文件。所以我从 [http://jquery.com/download/] 下载了最新的 jquery 2.1.1.min.js 和相应的地图文件,并将它们加载到主布局中。现在验证终于开始了。

希望此解决方法能帮助遇到同样问题的人。

【讨论】:

    【解决方案2】:

    尝试添加类似这样的模型动作:

    if (Yii::app()->request->isAjaxRequest){
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }
    

    或取消注释此行

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);
    

    【讨论】:

    • 我没有使用 ajax 验证。因此,上述方法可能不是原因。 . .
    猜你喜欢
    • 1970-01-01
    • 2015-12-20
    • 2013-10-23
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    相关资源
    最近更新 更多