Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Poner foco en input text no me funciona (https://www.clubdelphi.com/foros/showthread.php?t=53520)

lucasarts_18 22-02-2008 20:25:24

Poner foco en input text no me funciona
 
Hola tengo el siguiente problema

Estoy validando la cantidad de stock, si la cantidad indicada supera el stock del inventario, muestro un mensaje por pantalla y dejo el foco en el mismo control, pero esto no sucede :mad:, igual pasa al otro control el foco.

Código:

<td class="celdaGrilla" >
<input name="txtEmbCantProd[{$fila.Det_EmbNumCaja]}][{$fila.ProdCod}]"
  type="text" size="6" maxlength="6" class="inputSoloNum" value="{$fila.Det_EmbProdCant}" onblur=" return stock(this);"
    />
</td>

Código PHP:

function stock(obj) {
   var 
stock obj.form.txtProdStock.value;
   var 
cantPedida obj.value;
     
   if (
stock cantPedida) {
      
alert('No hay suficiente stock');
      
obj.value 0;
      
obj.focus();
      return 
false;
   }

   return 
true;
}
</script> 

Gracias....:):)

Hasta Luego .-

dec 23-02-2008 09:27:30

Hola,

El siguiente código parece funcionar como se espera en Internet Explorer:

Código PHP:

<html>
<
head>

<
script>

function 
Validate(obj){
  if(
true != false){
    
// Así damos de nuevo el foco al INPUT
    
obj.focus();
  }
}    

</script>

</head>
<body>

<form>
 <input type="text" onblur="Validate(this);">
</form>

</body>
</html> 

Sin embargo, no funciona en Firefox. Y, buscando en Google, topas con páginas en que se viene a decir desde que es causa de cómo JavaScript trata el evento "onblur" (parece que se ejecuta luego de haberse ejecutado el código JavaScript (?)).

En la propia página que enlazo se muestra ya una solución, y si uno busca un poco encuentra otras páginas como esta, donde se propone la misma solución. Sin embargo, aquí ya se habla de un "bug" en Mozilla Firefox... en todo caso la solución es la que es y parece funcionar:

Código PHP:

<html>
<
head>

<
script>

function 
Validate(obj){
  if(
true != false){
    
// Así damos de nuevo el foco al INPUT
    
setTimeout(function () { obj.focus() }, 1);    
  }
}    

</script>

</head>
<body>

<form>
 <input type="text" onblur="Validate(this);">
</form>

</body>
</html> 


lucasarts_18 04-03-2008 20:42:15

Buena Solución...
 
Hola Dec:

Disculpa por no ver este tema, otras cosas me tuvieron ocupado durante toda la semana...:mad:, en fin he retomado este tema y lo he cambiado por el evento keypress y no tengo ningún problema, por cierto lo tendré presente para futuras cosas que haga con el evento onblur :D

Gracias nuevamente....

Hasta Luego .-


La franja horaria es GMT +2. Ahora son las 11:47:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi