Yii防止表单在客户端验证提交

时间:2012-09-27 15:56:07

标签: php jquery validation yii client-side

我在尝试在yii 1.1.12上进行客户端验证时遇到问题。 我有以下

<?php
Yii::app()->clientScript
        ->registerCoreScript('jquery');
?>
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form',
    'enableClientValidation' => true,
        'clientOptions'=> array('validateOnSubmit'=>true,
                                 'afterValidate'=>'js:function() 
                                        {     
                                           return false
                                        }'
                                ),
        'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); 
?>

即使在验证后使用return false,我的表单仍然被提交。 有什么方法可以解决这个问题吗?

感谢。

4 个答案:

答案 0 :(得分:4)

你可能正确的方式。但Yii客户端验证还取决于您在表单中显示的错误。如果使用CHtml::error()方法而不是那个变量客户端验证的显示错误将不会发生。由于您没有发布任何代码,我无法说出您正在使用的内容。因此,请尝试使用$form->error()方法。 如果您仍然面临问题,请告诉我。

另请查看以下链接。

<?php
Yii::app()->clientScript
        ->registerCoreScript('jquery');
?>
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form',
    'enableClientValidation' => true,
    'clientOptions'=> array('validateOnSubmit'=>true),
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); 
?>

http://www.waytoblogger.com/blog/technical/yii/yii-client-side-validation/

答案 1 :(得分:2)

试试这个:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'my-form',
    'enableClientValidation' => true,
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); 
?>

我在clientOptions中看到你没有做任何具体的事情。所以刚刚删除。并且您不必自己包含jquery,据我所知,yii会在需要时自动包含它(我想这里是activeform需要的)。 您可以查看此url

答案 2 :(得分:0)

解决。  刚删除

<?php
Yii::app()->clientScript
        ->registerCoreScript('jquery');
?>

答案 3 :(得分:0)

'enableClientValidation'=>true,
 'clientOptions' => array('validateOnSubmit'=>true),