Yii Framework Forum: Validacion con AJAX en formulario - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Validacion con AJAX en formulario Rate Topic: -----

#1 User is offline   mecano 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 9
  • Joined: 18-June 11
  • Location:Colombia

Posted 20 July 2011 - 08:04 PM

Buenas noches.


Señores ando experimentando YII y realmente es GENIAL, pero tengo un gran problema.


en un formulario que estoy generando, la validacion del mismo que la realizo por ajax, solo se realiza cuando le doy click en el boton de submit y no cuando salgo o pierde el foco algun campo, ya no se que mas leer o hacer el codigo de mi formulario esta tal cual como el ejemplo de logueo de yii.

Formulario
$form=$this->beginWidget('CActiveForm', array(
    'id'=>'submit-form',
    'enableAjaxValidation'=>true,
    'enableClientValidation'=>true,
    'clientOptions'=>array('validateOnSubmit'=>true,),    
    'focus'=>'input:visible:enabled:first',
)); 



Input del Formulario

                <div class="row">
                        <?php echo $form->error($model,'campo1'); ?>
                        <?php echo $form->labelEx($model,'campo1'); ?>
                        <?php echo Chtml::textField('model','',array('size'=>60,'maxlength'=>60)); ?>
                        <?php
                                  echo CHtml::ajaxButton ("consultar",CController::createUrl('Dato/BuscarCampo'), 
                                  array('update' => '#datocampo', 'data'=> array('idp' => 'js:getvalJQbyID("model")'))
                                  ,array('id'=>'search-idp',));
                        ?>
                </div>
                <div id="datocampo">  
                        <?php $this->renderPartial('_ajaxPaciente', array('myValue'=>$myValue)); ?>
                </div>


en el cual hago una consulta por ajax a a otro modelo para traer datos en mi formulario.

pregunto no se puede validar el campo automaticamente, al perder el foco ? sin necesidad de darle submit al formulario =?

Gracias de antemano
0

#2 User is offline   chux 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 83
  • Joined: 16-September 10

Posted 21 July 2011 - 01:16 PM

Te refieres a esto?
http://www.tucoaster.com/registrate

Prueba a poner un usuario de menos de 4 caracteres y ves a otro campo, o prueba con un usuario que exista (chux, por ejemplo) y ves a otro campo.
el código que he usado
$form=$this->beginWidget('CActiveForm', array(
	'id'=>'usuario-form',
	'enableClientValidation'=>true,
	'enableAjaxValidation' => true,
	'clientOptions' => array(
		'validateOnSubmit' => true,
	),
    'focus' => array($model, 'login'),
));


Rules del modelo (resumidas)
array('login', 'unique', 'message' => 'Este usuario ya existe'),
array('password, login', 'length', 'min' => 4),
array('email, login, password, nombre', 'required'),
....


Controlador (resumido tambien)
if ($_POST['Usuario']){
    $model->attributes = $_POST['Usuario'];
    $this->performAjaxValidation($model);
    if ($model->validate()){
    //guardo, mando email de verificación y esas cosas
    }


Espero que te sirva
Give a read to my blog.
0

#3 User is offline   Efrain Arredondo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 17
  • Joined: 26-February 11

Posted 30 July 2011 - 11:56 AM

View Postchux, on 21 July 2011 - 01:16 PM, said:

Te refieres a esto?
http://www.tucoaster.com/registrate

Prueba a poner un usuario de menos de 4 caracteres y ves a otro campo, o prueba con un usuario que exista (chux, por ejemplo) y ves a otro campo.
el código que he usado
$form=$this->beginWidget('CActiveForm', array(
	'id'=>'usuario-form',
	'enableClientValidation'=>true,
	'enableAjaxValidation' => true,
	'clientOptions' => array(
		'validateOnSubmit' => true,
	),
    'focus' => array($model, 'login'),
));


Rules del modelo (resumidas)
array('login', 'unique', 'message' => 'Este usuario ya existe'),
array('password, login', 'length', 'min' => 4),
array('email, login, password, nombre', 'required'),
....


Controlador (resumido tambien)
if ($_POST['Usuario']){
    $model->attributes = $_POST['Usuario'];
    $this->performAjaxValidation($model);
    if ($model->validate()){
    //guardo, mando email de verificación y esas cosas
    }


Espero que te sirva


Excelente, es lo que he andado buscando
0

#4 User is offline   christian rojas magno 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 1
  • Joined: 16-April 13

Posted 19 April 2013 - 02:02 PM

Saludos amigo, tengo una duda, en que parte del Controller porngo esto

Quote

if ($_POST['Usuario']){
$model->attributes = $_POST['Usuario'];
$this->performAjaxValidation($model);
if ($model->validate()){
//guardo, mando email de verificación y esas cosas
}

Soy novato en Yii....gracias
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

2 User(s) are reading this topic
0 members, 2 guests, 0 anonymous users