Foros del Web » Programando para Internet » Javascript »

Ayuda con un modificador simple.

Estas en el tema de Ayuda con un modificador simple. en el foro de Javascript en Foros del Web. var inputD = document.createElement("input"); inputD.setAttribute("type","text"); inputD.setAttribute("value",valorDia); inputD.setAttribute("id","num min:2"); inputD.setAttribute("maxlength","2"); inputD.setAttribute("style","height:"+alto+"px;wid th:25px;text-align:center;"); div.appendChild(inputD); var inputM = document.createElement("input"); inputM.setAttribute("type","text"); inputM.setAttribute("value",valorMes); inputM.setAttribute("id","num min:2"); inputM.setAttribute("maxlength","2"); inputM.setAttribute("style","height:"+alto+"px;wid th:25px;text-align:center;margin:0 3px 0 ...
  #1 (permalink)  
Antiguo 17/09/2009, 19:20
Avatar de Breaklo  
Fecha de Ingreso: junio-2008
Ubicación: Buenos Aires
Mensajes: 95
Antigüedad: 16 años, 6 meses
Puntos: 1
Ayuda con un modificador simple.

var inputD = document.createElement("input");
inputD.setAttribute("type","text");
inputD.setAttribute("value",valorDia);
inputD.setAttribute("id","num min:2");
inputD.setAttribute("maxlength","2");
inputD.setAttribute("style","height:"+alto+"px;wid th:25px;text-align:center;");
div.appendChild(inputD);

var inputM = document.createElement("input");
inputM.setAttribute("type","text");
inputM.setAttribute("value",valorMes);
inputM.setAttribute("id","num min:2");
inputM.setAttribute("maxlength","2");
inputM.setAttribute("style","height:"+alto+"px;wid th:25px;text-align:center;margin:0 3px 0 3px;");
div.appendChild(inputM);

var inputA = document.createElement("input");
inputA.setAttribute("type","text");
inputA.setAttribute("value",valorAnio);
inputA.setAttribute("id","num min:4");
inputA.setAttribute("maxlength","4");
inputA.setAttribute("style","height:"+alto+"px;wid th:45px;text-align:center;");
div.appendChild(inputA);

inputD.focus();
inputD.select();

inputD.onblur = function (){
if(inputD.focus() || inputM.focus() || inputA.focus())
return;

// la idea es que cuando salgas de inputD salvo que vallas a ese mismo o inputM o inputA haga lo siguiente sino muere ahi.


var valorD = esto.getElementsByTagName("input")[0].value;
var valorM = esto.getElementsByTagName("input")[1].value;
var valorA = esto.getElementsByTagName("input")[2].value;
var valorInput = valorD+"/"+valorM+"/"+valorA;

esto.firstChild.parentNode.removeChild(esto.firstC hild);
div.parentNode.removeChild(div);

var texto = document.createTextNode(valorInput);
esto.appendChild(texto);
}
  #2 (permalink)  
Antiguo 17/09/2009, 19:59
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Ayuda con un modificador simple.

primero, deberias dar un poco mas de explicacion. aunque asumo que tu duda esta en la parte bold del codigo. aun asi no comprendo bien que intentas hacer. me parece que quieres determinar si uno de los campos tiene foco y de ser cierto se salta la funcion. la forma que lo tienes no te va a funcionar porque el metodo focus simplemente pone el foco en el elemento y devuelve undefined. o sea, con focus no te va ayudar a determinar si el elemento tiene foco o no.

asi de momento, para evitar tantos error&trial. en lugar de determinar si tiene el foco, determina si los tres campos tienen la informacion necesaria, o sea que no esten vacios. si resulta ser cierto entonces procede con el resto de la operacion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 17/09/2009, 20:07
Avatar de Breaklo  
Fecha de Ingreso: junio-2008
Ubicación: Buenos Aires
Mensajes: 95
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Ayuda con un modificador simple.

si ya tengo todo el check y eso, lo quiero hacer es que si vos salis del 1º input realize una function pero cuando salis de este y vas al 2º o al 3º no realize la function.
  #4 (permalink)  
Antiguo 17/09/2009, 20:21
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Ayuda con un modificador simple.

bueno, pues te voy a dejar una idea para que te rompas la cabeza y puede que ahi veas el por que de mi respuesta anterior. utiliza un flag, que no es nada mas que otra cosa que un boolean le pones true o false cuando un elemento recibe foco o lo pierde. o sea, cuando uno de ellos recibe foco, le pones false para que salga de la funcion, y true cuando quites el foco del mismo campo.

te adelanto mi hipotesis. tan pronto salga del primer campo, aunque el foco se mueva al proximo, se ejecutara el proceso. y es logico por el orden que sucede las cosas, primero tiene que completarse el evento blur antes de focus. o quizas en este momento estoy muy torpe como para poder analizar una mejor solucion usando flag.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 18/09/2009, 13:23
Avatar de Breaklo  
Fecha de Ingreso: junio-2008
Ubicación: Buenos Aires
Mensajes: 95
Antigüedad: 16 años, 6 meses
Puntos: 1
Respuesta: Ayuda con un modificador simple.

gracias entendi y lo pude hacer :D..


var estado = true;

a aca input le puse,
onfocus = "estado = true";
onblur = "estado = false";

dsp tire..

setInterval(function{ if(estado == false){ ... } },500);

muchisimas gracias
  #6 (permalink)  
Antiguo 18/09/2009, 15:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Ayuda con un modificador simple.

aunque no me gusta la idea de usar un setTimeout o setInterval, pero si, es la unica forma posible. te felicito por haberlo intentado!
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 19:28.