Foros del Web » Programando para Internet » Javascript »

Funcion cambiar de input, evitar el cambio

Estas en el tema de Funcion cambiar de input, evitar el cambio en el foro de Javascript en Foros del Web. Masters tengo este codigo que cambia de inputs y/o selects una ves alcanzado el maxlength de un input o el cambio de una opcion del ...
  #1 (permalink)  
Antiguo 01/07/2008, 19:10
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Funcion cambiar de input, evitar el cambio

Masters

tengo este codigo que cambia de inputs y/o selects una ves alcanzado el maxlength de un input o el cambio de una opcion del select, y funciona correctamente
f
Código PHP:
unction NextInput(el){
var 
el.form;
var 
els f.elements;
var 
xnextEl;

if(
el.type=="text")
    {if (
el.value.length el.getAttribute('maxlength')) return;
    for (var 
i=0len=els.lengthi<leni++)
        {
els[i];
        if (
el == && (nextEl els[i+1]))
                {if (
nextEl.focusnextEl.focus();}}}
else{if(
el.type=="select-one")
        {for (var 
i=0len=els.lengthi<leni++)
            {
els[i];
            if (
el == && (nextEl els[i+1]))
                {if (
nextEl.focusnextEl.focus();}}}}

y se manda llamar en el keyup del input/select de esta forma
Código PHP:
<input type="text" name="txt1" id="txt1" value="" maxlength="35" onkeyup="NextInput(this)" />
<
input type="text" name="txt2" id="txt2" value="" maxlength="35" onkeyup="NextInput(this)" /> 
el problema me radica en que al tratar de regresar al input anterior(txt1), como ya se alcanzo el maxlength y este se autocomprueba en cuanto recibe el foco, me regresa nuevamente al input siguiente(txt2).... no me deja editarlo

cabe mencionar que utilizo el metodo de teclas SHIFT + TAB, para regresarme al input anterior

existe alguna posibilidad de modificar este codigo para que al regresarme me dejara el cursor al final o al principio del contenido...



NOTA:
onkeyup <-- realiza el proceso perfectamete, solo que al recibir el foco, automaticamente me regresa al input siguiente
onleydown <-- el proceso al regresar selecciona todo el contenido, pero al presionar BACKSPACE, se cambia al otro input
onkypress <-- debo repetir las teclas por que al evaluar el press, se pierde un caracter
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #2 (permalink)  
Antiguo 02/07/2008, 02:08
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Funcion cambiar de input, evitar el cambio

Has probado onchange?

Última edición por ivangc; 02/07/2008 a las 02:43
  #3 (permalink)  
Antiguo 02/07/2008, 10:04
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Respuesta: Funcion cambiar de input, evitar el cambio

ivangc, si lo pones en onchange este codigo no funciona,
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #4 (permalink)  
Antiguo 02/07/2008, 11:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Funcion cambiar de input, evitar el cambio

¿Qué te parece jugar con el evento onFocus?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 02/07/2008, 11:45
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Respuesta: Funcion cambiar de input, evitar el cambio

haber.... suena interesante...

antes de la evaluacion, verificar que si este alcanzado por el evento onfocus, evito la evaluacion, y lo pongo al final del length verdad... buen punto David
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #6 (permalink)  
Antiguo 02/07/2008, 11:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Funcion cambiar de input, evitar el cambio

Cita:
Iniciado por Shiryu_Libra Ver Mensaje
haber.... suena interesante...

antes de la evaluacion, verificar que si este alcanzado por el evento onfocus, evito la evaluacion, y lo pongo al final del length verdad... buen punto David
Exactamente. Espero logres resolver el problema.
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 03/07/2008, 02:07
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 2 meses
Puntos: 88
Respuesta: Funcion cambiar de input, evitar el cambio

despues de haber jugado con todos los eventos posibles, se me olvido jugar con el mas importante, el evento en si

ese norte que me mencionaste David, fue interesante, por eso opte por lo siguiente

en este caso, evaluar que tecla se ha oprimido, por lo tanto, realize esta evaluacion, si se puede perfeccionar hay propongan como realizarlo

el codigo quedo de la siguiente manera, ojala le sirva a alguien
Código PHP:
function NextInput(el,evto)    {
var 
el.form; var els f.elements; var xnextEl;
var 
letras window.Event true false;
var 
key letras evto.which evto.keyCode;
switch(
key){
    case 
8: case 9: case 13: case 16: case 17: case 18: case 27: break;
    case 
33: case 34: case 35: case 36: case 37: case 38: case 39: case 40: break;
    default:
        if(
el.type=="text")
            {if (
el.value.length el.getAttribute('maxlength')) return;
            for (var 
i=0len=els.lengthi<leni++)
                {
els[i]; 
                if (
el == && (nextEl els[i+1])){if (nextEl.focusnextEl.focus();}}}
        else{if(
el.type=="select-one")
            {for (var 
i=0len=els.lengthi<leni++)
                    {
els[i];if (el == && (nextEl els[i+1]))
                        {if (
nextEl.focusnextEl.focus();}}}}break;
    }
//fin del SQITCH
}//FIN DE LA FUNCION NextInput 
y se manda llamar ahora de esta forma
Cita:
<input type="text" name="hom" id="txt4a" maxlength="3" onkeyup="NextInput(this,event);"/>
recuerden que esta funcion, lo que realiza es que al momento de escribir hasta el MAXLENGTH del input, cambia automaticamente al siguiente input dentro del FORM, no se requiere cambiar nada

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.