【问题标题】:Yii Prevent Form Submit on client side validationYii 防止在客户端验证时提交表单
【发布时间】:2012-09-19 11:24:21
【问题描述】:

我在尝试在 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,我的表单仍在提交中。 有什么办法解决吗?

谢谢。

【问题讨论】:

    标签: php jquery validation yii client-side


    【解决方案1】:

    你可能会走对路。但 Yii 客户端验证也取决于您在表单中显示的错误。如果您使用CHtml::error() 方法显示错误,则不会发生该变量客户端验证。我不能说你在使用什么,因为你没有发布任何代码。所以尝试使用$form-&gt;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/

    【讨论】:

      【解决方案2】:

      试试这个:

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

      我在clientOptions 看到你没有做任何具体的事情。所以就删了。而且您不必自己包含jquery,据我所知,yii会在需要时自动包含它(我猜这里需要activeform)。 你可以看看这个url

      【讨论】:

      • 它一直在提交表单。我还要设置一些东西吗?
      • 你可以删除这个并尝试一下吗:'htmlOptions' =&gt; array('enctype' =&gt; 'multipart/form-data'),因为如果表单是可附加的文件,那么 yii 无法在客户端验证它。 `
      • 你有firebug吗,也许你可以看看并告诉我们js错误
      【解决方案3】:

      解决了。 刚刚删除

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

      【讨论】:

      • 我告诉过你,不是吗?我不是在写我的装饰答案:)
      【解决方案4】:
      'enableClientValidation'=>true,
       'clientOptions' => array('validateOnSubmit'=>true),
      

      【讨论】:

      • 请稍微解释一下你的代码,以便人们理解。
      猜你喜欢
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      相关资源
      最近更新 更多