Php 如何将ajax选项添加到UAActiveForm?
我已经查看了框架文档和yii论坛,但似乎找不到关于这方面的任何内容。我正在尝试向UAActiveForm小部件添加ajax选项。换句话说,我希望在单击此ajax表单的submit按钮时将加载的gif插入到div中。我知道如何在原始javascript/jquery/php中实现这一点,但我似乎无法用这个框架实现这一点。以下是我的begin小部件代码:Php 如何将ajax选项添加到UAActiveForm?,php,yii,Php,Yii,我已经查看了框架文档和yii论坛,但似乎找不到关于这方面的任何内容。我正在尝试向UAActiveForm小部件添加ajax选项。换句话说,我希望在单击此ajax表单的submit按钮时将加载的gif插入到div中。我知道如何在原始javascript/jquery/php中实现这一点,但我似乎无法用这个框架实现这一点。以下是我的begin小部件代码: <?php $form=$this->beginWidget('UActiveForm', array( 'id'=>'
<?php $form=$this->beginWidget('UActiveForm', array(
'id'=>'login-form',
'enableAjaxValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange'=>false,
'validateOnType'=>false,
),
'htmlOptions' => array(
'enctype'=>'multipart/form-data','class'=>'white-popup-block'),
),
)); ?>
<!--form labels/inputs here-->
<?php $this->endWidget(); ?>
我特别想要的是beforeSend和complete ajax选项。我试着简单地添加
'ajax'=> array(
'beforeSend'=> 'function() {
alert("testing, ready");
}',
'complete'=> 'function(){
alert("testing,done");
}',
),
到UAActiveForm小部件选项,但它不起作用。如果您能帮助我理解这个框架,我将不胜感激。我不知道什么是
UActiveForm
,但假设它是某种CActiveForm
,那么在客户端选项中可以使用前验证
和后验证
选项:
'clientOptions'=>array(
'beforeValidate' => new CJavaScriptExpression('function() { ... })'),
'afterValidate' => new CJavaScriptExpression('function() { ... })'),
'validateOnSubmit'=>true,
'validateOnChange'=>false,
'validateOnType'=>false,
),
您需要将函数代码包装在CJavaScriptExpression
中,否则Yii会将其视为字符串并json\u encode
它。谢谢!这是可行的,但是现在ajax帖子没有被发送,奇怪的是……你知道为什么会这样吗?如果没有,我会继续调试…啊,没关系。我想出来了。结果表明,匿名javascript函数需要返回true才能使表单继续。否则,它将什么也不做,并停止运行。
'clientOptions'=>array(
'beforeValidate' => new CJavaScriptExpression('function() { ... })'),
'afterValidate' => new CJavaScriptExpression('function() { ... })'),
'validateOnSubmit'=>true,
'validateOnChange'=>false,
'validateOnType'=>false,
),