Javascript 在Yii中启用客户端验证和提交表单后添加的双记录

Javascript 在Yii中启用客户端验证和提交表单后添加的双记录,javascript,php,ajax,validation,yii,Javascript,Php,Ajax,Validation,Yii,我有一个由AJAX提交的Yii格式的简单表单: <?php $form = $this->beginWidget('CActiveForm', array( 'id' => 'application-form', 'enableAjaxValidation' => true, 'enableClientValidation' => true, 'htmlOptions' => array(

我有一个由AJAX提交的Yii格式的简单表单:

<?php $form = $this->beginWidget('CActiveForm', array(
        'id' => 'application-form',
        'enableAjaxValidation' => true,
        'enableClientValidation' => true,
        'htmlOptions' => array(
            'enctype' => 'multipart/form-data',
            'onsubmit'=>"return send();"
        ),
        'clientOptions'=>array('validateOnSubmit'=>true)

)); ?>
<div class="row">
        <?php echo $form->labelEx($model, 'name'); ?>
        <?php echo $form->textField($model, 'name', array('size' => 60,'maxlength' => 255)); ?>
        <?php echo $form->error($model, 'name'); ?>
    </div>
<div class="row buttons">
        <?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
    </div>
文件名是必需的,这是目前唯一的验证。当我尝试在没有输入字段名的情况下提交表单时,验证消息会像在Yii中一样出现。但当我正确填写表格时,我的模型会在数据库中输入两次。如果我删除以下属性:

'clientOptions'=>array('validateOnSubmit'=>true)
模型正确保存(仅保存一次),但不会显示任何验证消息

当我通过ajax提交表单时,如何在Yii中显示默认的验证消息,并且不保存两次模型。我需要以这种方式提交表单,因为我将在Ajax响应中返回模型id,以便用JavaScript进行处理

我在网上搜索了一下,尝试了所有的建议,但都不管用


谢谢大家!

我通过添加
'afterValidate'=>'js:function(form,data,hasError){send(form,data,hasError);
并删除
'onsubmit'=>“return send();”
行来解决问题。现在它显示验证错误,只保存模型一次


查看更多信息。

我通过添加
'afterValidate'=>'js:function(form,data,hasError){send(form,data,hasError);
并删除
'onsubmit'=>“return send();”现在,它显示了验证错误,只保存了一次模型。请查看此帖子以获得更多信息。请考虑将您的评论作为答案并接受它。
public function actionCreate()
    {
        $model = new Application;
        $model->setScenario('create');

       $this->performAjaxValidation($model);

        if (isset($_POST['Application'])) {

           if ( $model->save()){

                echo CJSON::encode(array('success' => 'true','id'=>$model->id));
                Yii::app()->end();
            }
        }

        $this->render('create', array(
            'model' => $model
        ));
    }
'clientOptions'=>array('validateOnSubmit'=>true)