将AJAX与CActiveForm和我的自定义HTML代码一起使用

时间:2013-10-27 18:56:45

标签: forms yii

我正在尝试为我的项目制作Yii表单。

在一个页面上,它应该是一个CActiveForm和我自己的自定义HTML代码,我的控件使用我的自定义JavaScript进行验证和提交。

表单将通过AJAX提交,否则我需要记住并恢复我的控件的值(否则用户输入将在不成功的提交时丢失),我不想做。所以AJAX。

检查活动表单有效性的正确CActiveForm选项有哪些,调用我自己的验证代码,并且只有在所有有效的情况下才提交?

就此而言,我已经写了这段代码:

  <?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'contract-update-form',
    'enableAjaxValidation'=>true,
        'clientOptions'=>array('validateOnSubmit'=>true),
        'htmlOptions'=>array('onsubmit'=>'return on_submit();'),
  )); ?>

但它调用我的验证两次导致alert()的错误消息两次。为什么?以及如何纠正它?

1 个答案:

答案 0 :(得分:0)

您应该尝试afterValidate选项:

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'contract-update-form',
    'enableAjaxValidation'=>true,
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
        'afterValidate'=>'js:on_submit',
    ),
)); ?>

http://www.yiiframework.com/doc/api/1.1/CActiveForm#clientOptions-detail