[SOLUCIONADO]Mayúsculas en evento de un ef_editable?

Es posible que un ef_editable acepte solo mayúsculas, es decir, a medida que ingrese datos el usuario se baja “mayusculizando” la entrada?

Hola Martín, bienvenido al foro!

No hay una forma directa, lo podés hacer incluyendo javascript de la siguiente forma

  • Extender el formulario (de la misma forma que se extiende un CI)
  • En la subclase redefinir el método que genera javascript (extender_objeto_js) e incluir un método ini que modifique el onkeyup del ef en cuestión

Suponiendo que el ef se llama editable y el form mi_form, la subclase quedaría así


<?php

class mi_form extends toba_ei_formulario
{
	function extender_objeto_js()
	{
		echo "
			{$this->objeto_js}.ini = function () {
				this.ef('editable').input().onkeyup = function() {
					var ef = {$this->objeto_js}.ef('editable');
					ef.set_estado(ef.get_estado().toUpperCase());
				}
			}
	}
}

Gracias!!!

No pude replicarlo. Cuando quiero previsualizar el ABM, simplemente no aparece (como si hubiera algún error… algo se me está pasando, teneme paciencia, estoy arrancando!!!).
Te adjunto las propiedades de los objetos por si ves algo a simple vista. Yo sigo peleandome hasta que funcione!! :slight_smile:
Sin este código de extensión, el ABM funciona sin problemas.

http://ef_editable_mayusculas.gif


Hola Martin,

No me quiero meter, pero a simple vista parece que te equivocaste de comillas (van dobles).

Saludos, Esteban.

Disculpa que me entrometa, yo lo reproduje y completo para el nombre y los apellidos, queda de la siguiente forma, ya que falta cerrar las comillas del echo, al final cerrar el php:

<?php class extension extends toba_ei_formulario { function extender_objeto_js() { echo " {$this->objeto_js}.ini = function () { this.ef('per_nombres').input().onkeyup = function() { var ef = {$this->objeto_js}.ef('per_nombres'); ef.set_estado(ef.get_estado().toUpperCase()); } this.ef('per_apellidos').input().onkeyup = function() { var ef = {$this->objeto_js}.ef('per_apellidos'); ef.set_estado(ef.get_estado().toUpperCase()); } } "; } } ?>

Ninguna disculpa!!! :slight_smile:
Entrometanse!!!
Quedó solucionado. Mil gracias!!!

Sepan disculparme Uds., era algo muy fácil que mi desconocimiento general en sintaxis de php y javascript causo.

MIL GRACIAS NUEVAMENTE!!