hooman.pro
سه شنبه 11 آذر 1393, 10:16 صبح
سلام میخواهم فرمم فقط موقع سابمیت ارور بگیرد. (حالت پیش فرض yii ) اما زمانی که کاربر در آن فیلد مقدار درست وارد کرد و بلور رخ داد ارور پاک شود.
اما زمانی که این ها رو میزارم:
$form = $this->beginWidget('CActiveForm', array(
'id' => 'question-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation' => false,
'enableClientValidation'=>true,
'focus'=>($model->hasErrors()? '.error:first' : array($baseUserModel, 'name')),
'clientOptions' => array(
'validateOnSubmit'=>true,
'validateOnChange'=>false,
'validateOnBlur'=>true,
'validateOnType'=>false,
'afterValidate'=>'js:function(form,data,hasError)
{
if(hasError)
{
var j=0;
for(var i in data){
if(j==0){
scrollWin("#"+i,"#"+i);
}
j++;
}
}else{
return true;
}
}'
),
));
اتفاقی که می افته اینه که با بلور شدن از روی هر فیلد آن را ولیدت میکند و اگر ارور داشته باشد نمایش میدهد و اگر ارور از بین رفته باشد آن را حذف میکند. خوب هست اما من میخواهم فقط در زمانی که ارور (به وسیله سابمیت فرم به وجود آمده) داشت با وارد شدن مقدار صحیح و بلور شدن از بین برود. همین و از فیلد ها دیگر ارور جدید نگیرد تا سابمیت مجدد.
و سوال دوم : برای یک فرم دیگر میخواهم دفعه اول که یوزر وارد صفحه میشود تا سابمیت فرم هیچ اروری از او نگیرد اما بعد از سابمیت و گرفتن ارور ها به همین صورت بالا یعنی با بلور یا change ارور بگیرد و در صورت درست بودن هم از بین برود.
اما زمانی که این ها رو میزارم:
$form = $this->beginWidget('CActiveForm', array(
'id' => 'question-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation' => false,
'enableClientValidation'=>true,
'focus'=>($model->hasErrors()? '.error:first' : array($baseUserModel, 'name')),
'clientOptions' => array(
'validateOnSubmit'=>true,
'validateOnChange'=>false,
'validateOnBlur'=>true,
'validateOnType'=>false,
'afterValidate'=>'js:function(form,data,hasError)
{
if(hasError)
{
var j=0;
for(var i in data){
if(j==0){
scrollWin("#"+i,"#"+i);
}
j++;
}
}else{
return true;
}
}'
),
));
اتفاقی که می افته اینه که با بلور شدن از روی هر فیلد آن را ولیدت میکند و اگر ارور داشته باشد نمایش میدهد و اگر ارور از بین رفته باشد آن را حذف میکند. خوب هست اما من میخواهم فقط در زمانی که ارور (به وسیله سابمیت فرم به وجود آمده) داشت با وارد شدن مقدار صحیح و بلور شدن از بین برود. همین و از فیلد ها دیگر ارور جدید نگیرد تا سابمیت مجدد.
و سوال دوم : برای یک فرم دیگر میخواهم دفعه اول که یوزر وارد صفحه میشود تا سابمیت فرم هیچ اروری از او نگیرد اما بعد از سابمیت و گرفتن ارور ها به همین صورت بالا یعنی با بلور یا change ارور بگیرد و در صورت درست بودن هم از بین برود.