Yii Framework Forum: [Solucionado] Codigo Javascript - Yii Framework Forum

Jump to content

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

[Solucionado] Codigo Javascript Rate Topic: -----

#1 User is offline   Miguel Lopez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 07-February 14

Posted 27 February 2014 - 09:43 PM

Buenas, alguien tiene algun codigo javascript o mask en yii que permita escribir solo letra V o E de primero en el textfield ninguna otra letra? y que luego que la escriba automáticamente ponga un - para luego dejar escribir numeros. Esto es para usarlos con cédulas de identidad en Venezuela, la V es cuando son Venezolanos y le E cuando son Extranjeros.
0

#2 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 28 February 2014 - 08:02 AM

hola, yii trae CMaskedTextField para hacer máscaras de texto.
Tu caso es algo distinto al que trae por defecto así que deberías cambiar el charMap, algo así:
echo $this->widget('CMaskedTextField', array(
	'model' => $model,
	'attribute' => 'nombreAtributo',	
	'charMap' => array('v'=>'[V,v,E,e]','9'=>'[0-9]'),
	'mask' => 'v-999999999',
));

en mask, coloca tantos 9 como el máximo de números que permitas y haz pruebas.
saludos
0

#3 User is offline   Miguel Lopez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 07-February 14

Posted 28 February 2014 - 12:28 PM

muy bien muchas gracias te aviso cuando lo pruebe ;)
0

#4 User is offline   Miguel Lopez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 07-February 14

Posted 28 February 2014 - 05:23 PM

El código esta perfecto funciona muy bien pero como hago para que si escribo la "e" me escriba "E" y si escribo "v" me escriba "V" es decir me los convierta de minúscula a mayúscula.
0

#5 User is offline   Miguel Lopez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 07-February 14

Posted 28 February 2014 - 05:34 PM

Se me presenta otro problema tengo un código javascript, el cual verifica si la cédula existe pero cuando utilizo el código que me diste no funciona que puedo hacer en este caso?

Este es el código javascript:

<script>
    $('#cedula').on('blur', function(){
		$.ajax({
			alert ($('#cedula').val());
     		url: <?php echo "'".CController::createUrl('solicitantes/ExistePersona')."'"; ?>,
     		data: {'cedula' : $('#cedula').val()},
     		type: "post",
     		success: function(data){
				if (data == 0)
				{
					nombre.value = " ";
					nombre.disabled = false;
					apellido.value = " ";
					apellido.disabled = false;
					nacimiento.value = " ";
					nacimiento.disabled = false;
					sexo.value = " ";
					sexo.disabled = false;
					direccion.value = " ";
					direccion.disabled = false;
					numerocasa.value = " ";
					numerocasa.disabled = false;
					telefono.value = " ";
					telefono.disabled = false;
					email.value = " ";
					email.disabled = false;
					circuitos_id.value=" ";
					circuitos_id.disabled = false;
					$("#button").css("display", "block");
				}
				else
				{
					var retrievedJSON = data;
					var array = JSON.parse(retrievedJSON);
					nombre.value = array[0].nombre;
					nombre.disabled = true;
					apellido.value = array[0].apellido;
					apellido.disabled = true;
					nacimiento.value = array[0].nacimiento;
					nacimiento.disabled = true;
					sexo.value = array[0].sexo;
					sexo.disabled = true;
					direccion.value = array[0].direccion;
					direccion.disabled = true;
					numerocasa.value = array[0].numerocasa;
					numerocasa.disabled = true;
					telefono.value = array[0].telefono;
					telefono.disabled = true;
					email.value = array[0].email;
					email.disabled = true;
					circuitos_id.value=array[0].circuitos_id;
					circuitos_id.disabled = true;
					$("#button").css("display", "none");
				}
			}
		});
	})
</script>

0

#6 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 01 March 2014 - 05:48 AM

View PostMiguel Lopez, on 28 February 2014 - 05:23 PM, said:

El código esta perfecto funciona muy bien pero como hago para que si escribo la "e" me escriba "E" y si escribo "v" me escriba "V" es decir me los convierta de minúscula a mayúscula.


- Si quieres que lo haga el PC del cliente añadir más javascript , el widget de la máscara no hace cambios.
- Si quieres que lo haga php puedes cambiarlo con una regla de validación o con 1 comportamiento.
0

#7 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 01 March 2014 - 05:52 AM

View PostMiguel Lopez, on 28 February 2014 - 05:34 PM, said:

Se me presenta otro problema tengo un código javascript, el cual verifica si la cédula existe pero cuando utilizo el código que me diste no funciona que puedo hacer en este caso?


Y que es lo que falla??
- Ya no funciona la máscara, es un campo de texto plano y permite meter cualquier carácter. (Hay un error de javascript)
- Es un problema de ajax. (aquí usar firebug para ver que todo va ok)
- Otro problema.
0

#8 User is offline   Miguel Lopez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 07-February 14

Posted 01 March 2014 - 10:40 AM

El error es que tengo una función en ajax, pero con la mascara dejo de funcionar dicha funcion
0

#9 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 02 March 2014 - 04:59 AM

View PostMiguel Lopez, on 01 March 2014 - 10:40 AM, said:

El error es que tengo una función en ajax, pero con la mascara dejo de funcionar dicha funcion


No entendía el porque hasta que ví tu otro post en el que mencionas que si funciona con números pero no cuando trae la letra.
Tienes razón, el problema es CMaskedTextField, que guarda en BBDD V-xxxxxx, es decir guarda la letra los números y el carácter '-'. Este carácter es el que provoca que no lo veas en el formulario :

Mira en BBDD como se guarda el dato y elige como quieres guardarlo de entre estas 2 formas:
V12345678
V-12345678

si es la 1ª eliminar el - antes de guardar.
si es la 2ª variar la máscara, para permitir ese carácter:

echo $this->widget('CMaskedTextField', array(
        'model' => $model,
        'attribute' => 'nombreAtributo',        
        'charMap' => array('v'=>'[V,v,E,e]','g'=>'[-,0-9]','9'=>'[0-9]'),
        'mask' => 'v-g999999999',
));


aqui te permite introducir: V-12345678 y también V--1234567, no se si se podrá definir más.
0

#10 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 178
  • Joined: 11-July 13

Posted 02 March 2014 - 05:15 AM

Haciendo alguna prueba me funciona bien sin hacer lo que decía antes.
Comprueba el dato que guardas en BBDD, debería ser V-12345678, sin hacer la verificación si entras al formulario de nuevo se verá el valor si cumple la máscara, si no lo hace esta vacía el input de la parte que no valide la máscara.
Si guardas y ves el campo luego añade la verificación via ajax y haz pruebas con un nuevo registro.
0

#11 User is offline   Miguel Lopez 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 108
  • Joined: 07-February 14

Posted 02 March 2014 - 11:04 AM

Ya lo solucione era un error del query en el controlador
0

Share this topic:


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

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