Php Yii框架中的验证
在验证过程中,如何在yii框架中动态设置字段集的边界 失败时,字段集的边框应变为红色,而成功时,字段集的边框应变为绿色 如果任何一个输入失败,如果所有元素都正确,则feildset应显示failure(失败)和success(成功)Php Yii框架中的验证,php,validation,yii,notifications,Php,Validation,Yii,Notifications,在验证过程中,如何在yii框架中动态设置字段集的边界 失败时,字段集的边框应变为红色,而成功时,字段集的边框应变为绿色 如果任何一个输入失败,如果所有元素都正确,则feildset应显示failure(失败)和success(成功) <fieldset class="field"> <div class="visible column"> <div> <?php echo $form->labelEx( $modelAddress, 'First
<fieldset class="field">
<div class="visible column">
<div>
<?php echo $form->labelEx( $modelAddress, 'First Name'); ?>
<?php echo $form->textField( $modelAddress, 'firstName'); ?>
<div class="indicator"> </div>
<?php echo $form->error( $modelAddress, 'firstName'); ?>
</div>
</div>
</fieldset>
//My Script
<script>
$(document).ready(function()
{ $("input").each(function(){if ($(this).hasClass("error"))
{ $(this).parent().parent().parent().parent().addClass("fieldseterror");
}
});
</script>
//PHP
<?php
$form = $this->beginWidget( 'CActiveForm', array(
'id' => 'registration',
'enableAjaxValidation' => true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'afterValidate' => 'js:checkErrors'
),'htmlOptions' => array( 'class' => 'vertical inner custom_frm_styl')));
?>
//我的剧本
$(文档).ready(函数()
{$(“输入”).each(函数(){if($(this).hasClass(“错误”))
{$(this.parent().parent().parent().parent().addClass(“fieldseterror”);
}
});
//PHP
您可以使用jQuery。
Yii自动更改非验证字段以获得class.error,因此您可以检查任何表单字段是否具有class.error以更改您想要的内容,例如(未测试):
$(函数(){
$('#用户表单')。提交(函数(){
$(“#用户表单输入”)。每个(函数(){
if($(this).hasClass(“错误”)){
...
}
});
});
});
您可以使用jQuery。
Yii自动更改非验证字段以获得class.error,因此您可以检查任何表单字段是否具有class.error以更改您想要的内容,例如(未测试):
$(函数(){
$('#用户表单')。提交(函数(){
$(“#用户表单输入”)。每个(函数(){
if($(this).hasClass(“错误”)){
...
}
});
});
});
我认为您可以使用CActiveForm的属性
$myform = $this->beginWidget('CActiveForm',array('id'=>'invoice-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'afterValidate' => 'js:checkErrors'
)
));
<script type="text/javascript">
function checkErrors(form, data, hasError) {
if(!hasError) {
$('.field').addClass("fieldseterror");
//$(form).submit();
return true;
}
else {
//return false;
}
}
</script>
$myform=$this->beginWidget('CActiveForm',数组('id'=>'invoice-form',
“enableClientValidation”=>true,
'clientOptions'=>数组(
“validateOnSubmit”=>true,
'afterValidate'=>'js:checkErrors'
)
));
函数检查错误(表单、数据、HASRERROR){
如果(!hasError){
$('.field').addClass(“fieldseterror”);
//$(表单).submit();
返回true;
}
否则{
//返回false;
}
}
我认为您可以使用CActiveForm的属性
$myform = $this->beginWidget('CActiveForm',array('id'=>'invoice-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'afterValidate' => 'js:checkErrors'
)
));
<script type="text/javascript">
function checkErrors(form, data, hasError) {
if(!hasError) {
$('.field').addClass("fieldseterror");
//$(form).submit();
return true;
}
else {
//return false;
}
}
</script>
$myform=$this->beginWidget('CActiveForm',数组('id'=>'invoice-form',
“enableClientValidation”=>true,
'clientOptions'=>数组(
“validateOnSubmit”=>true,
'afterValidate'=>'js:checkErrors'
)
));
函数检查错误(表单、数据、HASRERROR){
如果(!hasError){
$('.field').addClass(“fieldseterror”);
//$(表单).submit();
返回true;
}
否则{
//返回false;
}
}
您只是没有访问正确的父元素。请尝试:
$(this).parent().parent().parent().addClass("fieldseterror");
在yii中包含jquery代码的最好方法是使用,因此在create.php中添加:
如您所见,我添加了一个console.log()
调用来检查匹配的父元素。另外,在添加字段集之前,最好先检查字段集是否已经有fieldseterror
类
为此,您不需要validateOnSubmit
或afterValidate
。您只是没有访问正确的父元素。请尝试:
$(this).parent().parent().parent().addClass("fieldseterror");
在yii中包含jquery代码的最好方法是使用,因此在create.php中添加:
如您所见,我添加了一个console.log()
调用来检查匹配的父元素。另外,在添加字段集之前,最好先检查字段集是否已经有fieldseterror
类
您不需要验证提交
或验证后
。如果指示器被激活,请将背景更改为红色。我们必须使用find()进行动态设置和家长:但我无法修复..是否尝试使用客户端表单验证?如果指示器被激活,请将背景更改为红色我们必须使用find()和家长动态设置:但我无法修复..是否尝试使用客户端表单验证?