我正在尝试为我的项目制作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()的错误消息两次。为什么?以及如何纠正它?
答案 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