Ajax 如何使用clientOptions验证CSS
我想在$form->error()中定义的ajax验证期间显示加载图标。我需要做什么 从文件: [validatingCssClass:string,要分配给当前正在通过AJAX验证其关联输入的容器的CSS类。默认为“validating”。]Ajax 如何使用clientOptions验证CSS,ajax,validation,yii,Ajax,Validation,Yii,我想在$form->error()中定义的ajax验证期间显示加载图标。我需要做什么 从文件: [validatingCssClass:string,要分配给当前正在通过AJAX验证其关联输入的容器的CSS类。默认为“validating”。] .验证{ 背景色:#FF02FF; } ..... 您可以使用CSS2执行此操作,设置a,您可能还需要使用来定位此图像。样本: /*我在project/css文件夹中有一个新的styles.css文件*/ .验证{ 背景图像:url(../ima
.验证{
背景色:#FF02FF;
}
.....
您可以使用CSS2执行此操作,设置a,您可能还需要使用来定位此图像。样本:
/*我在project/css文件夹中有一个新的styles.css文件*/
.验证{
背景图像:url(../images/loading.gif);/*我的图像位于project/images文件夹中*/
背景位置:右中心;/*必须正确定位*/
背景重复:无重复;
}
确保图像大小正确,或者可以使用CSS3的属性(首先检查浏览器兼容性)
在Yii前端,您不必在表单的
客户端选项中添加任何内容,因为默认的验证CSSClass
已经是验证
:
'clientOptions'=>数组(
“validateOnType”=>true,
“验证CSSClass”=>“验证”
//如果类正在验证,则该类已应用,因此该行是多余的,仅当验证类不同时才使用
),
如果您在localhost上进行测试,显然您不会注意到发生的更改,因为没有网络延迟,但要测试它并正确定位,您需要看到它,因此您可以使用以下方法在验证操作方法中引入一些延迟:
您想在页面上的何处显示此图标?@bool.dev-在该输入字段之后。那么您是否尝试添加一个加载的gif图像作为验证css类的背景图像?是的,我做了类似的操作,但不起作用。唯一的区别是我使用echo CActiveForm::validate(array($model))而不是performAjaxValidation。我认为问题在于客户端,您能否显示整个表单代码?您是否也检查了ajax调用是否正确返回数据?您是否使用Yii::app()->end()跟踪CActiveForm::validate()?基本上,我们现在已经进入调试领域,所以必须找出错误在哪里,我今天晚些时候会回答你。谢谢:)是的,我试过了,但没有发生什么事。这是我的代码(来自fiddler的视图、控制器和json)
<style type="text/css">
.validating {
background-color: #FF02FF;
}
</style>
<?php /** @var TbActiveForm $form */
$form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(
'id'=>'prezentacija-form',
'enableAjaxValidation'=>true,
'htmlOptions'=>array('class'=>'well'),
'clientOptions'=>array(
'validateOnType'=>true,
),
)); ?>
.....
<?php echo $form->error($model,'naziv', array('validateOnType'=>true)); ?>
public function actionActionId() {
$model=new Prezentacija;
usleep(10000); // for me 10000 microseconds was enough delay
$this->performAjaxValidation($model);
// ... rest of your code ...
}