Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] colocar el puntero en un campo de texto

Estas en el tema de colocar el puntero en un campo de texto en el foro de Javascript en Foros del Web. Algo está mal y no consigo verlo. En mi función me salta el alert, me deja en blanco el campo de texto pero no consigo ...
  #1 (permalink)  
Antiguo 11/03/2014, 12:52
Avatar de Euclides64  
Fecha de Ingreso: octubre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 2
colocar el puntero en un campo de texto

Algo está mal y no consigo verlo.

En mi función me salta el alert, me deja en blanco el campo de texto pero no consigo que el puntero quede situado en el mismo.

Seguidamente pongo la función y espero podáis ayudarme:

Código HTML:
<script language="JavaScript" type="text/javascript">
//para no permitir menos de 6 caracteres en el Password
function chkpass(){
	largopass = document.form2.contrasena.value.length ;
    if(largopass < 8){
    	alert("El password debe ser al menos de 8 caracteres.");
		document.form2.contrasena.value=("");
		document.form2.contrasena.focus();
	}
}
</script> 
Gracias anticipadas por vuestras respuestas.

Jesús B.
  #2 (permalink)  
Antiguo 11/03/2014, 13:30
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años, 1 mes
Puntos: 67
Respuesta: colocar el puntero en un campo de texto

deberías ponerlo después de que se cierre el alert(), no sé si se puede poner el alert() como una función y que al cerralo haga X cosa.
De todas formas te aconsejo leas sobre HTML5, puedes poner longitud mínima en campos de texto creo y te ahorras tanto trabajo.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #3 (permalink)  
Antiguo 12/03/2014, 02:10
Avatar de Euclides64  
Fecha de Ingreso: octubre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: colocar el puntero en un campo de texto

HTML5 dará solución a muchos de nuestros problemas, no lo he estudiado aun en profundidad y por otro lado tengo entendido que aún no tiene soporte en la mayoría de los navegadores de mas uso.

Por el momento desearía dar solución a mi problema mediante la función javascript que indico por lo que espero que si conocéis alguna solución me lo indiquéis.

Gracias y saludos. Jesús B.
  #4 (permalink)  
Antiguo 12/03/2014, 03:32
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años, 1 mes
Puntos: 67
Respuesta: colocar el puntero en un campo de texto

Como te dije lo más seguro es que funcione bien pero al darle al botón del alert() el focus vuelve a cambiar. Prueba algo así:
Código HTML:
if(alert("El password debe ser al menos de 8 caracteres.") == false){
		document.form2.contrasena.value=("");
		document.form2.contrasena.focus();
}
Ya me dirás que tal. Por otra parte estás equivocado, los navegadores más utilizados soportan la mayoría de las utilidades de HTML5, hay algunas polémicas pero de este tipo creo que funcionan todas.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #5 (permalink)  
Antiguo 12/03/2014, 13:39
Avatar de Euclides64  
Fecha de Ingreso: octubre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: colocar el puntero en un campo de texto

Zalito12, he probado lo que me indicas y no funciona, es más, no deja el campo en blanco por lo que posibilita la introducción de una contraseña de menos de 8 caracteres que por otro lado no entraría por cuanto le tengo puesto un condicionante en PHP que lo impediría.

Lo dejo como estaba que al menos deja el campo en blanco y lo remarca en rojo como falto de cumplimentar, lo que entiendo es más claro para el usuario.

Te decía lo de la incompatibilidad de HTML5 con algunos navegadores por que esta consulta, antes de hacerla en este foro, busqué solución por Internet y ya vi que era posible hacerlo en esta nueva versión pero decía también que solo funcionaba en Opera y no en el resto de navegadores.

Me pienso seriamente lo de HTML5 pues la verdad es que tenemos que estar al día.

Gracias y saludos. Jesús B.
  #6 (permalink)  
Antiguo 12/03/2014, 14:02
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: colocar el puntero en un campo de texto

el alert no retorna nada, por lo que preguntar por él es innecesario. Por otra parte, no sé si el problema sean los paréntesis que no debería ser, pero quizá:

Código Javascript:
Ver original
  1. function chkpass(){
  2.         if(document.form2.contrasena.value.length< 8){
  3.             alert("El password debe ser al menos de 8 caracteres.");
  4.         document.form2.contrasena.value='';
  5.         document.form2.contrasena.focus();
  6.     }
  7. }

Otra opción es probar usando el id del elemento.
  #7 (permalink)  
Antiguo 12/03/2014, 14:02
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años, 1 mes
Puntos: 67
Respuesta: colocar el puntero en un campo de texto

Perdona, fallo mío, el script debería ser este:
Código HTML:
if(!alert("El password debe ser al menos de 8 caracteres.")){
		document.form2.contrasena.value=("");
		document.form2.contrasena.focus();
}
Puse false pero me equivoque, así debería funcionar perfecto.
Como ya dije el problema que tenías era que al hacer click en el Acpetar del alert() te volvía a cambiar el focus, por eso una parte te funcionaba y la otra no. De esta manera no ejecutas los cambios hasta que la ventana se cierra.
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP

Última edición por zalito12; 12/03/2014 a las 14:37
  #8 (permalink)  
Antiguo 13/03/2014, 01:30
Avatar de Euclides64  
Fecha de Ingreso: octubre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: colocar el puntero en un campo de texto

La cosa sigue igual, tanto lo que me indica ocp001a como zalito12 hace lo mismo que mi antigua función, salta el alert, deja el campo en blanco pero el foco pasa al siguiente campo.

En verdad todo lo comentado me ha servido de bastante para conocer mas sobre este mundo de la programación y se me ha ocurrido una pequeña chapuza que consigue plenamente lo que pretendía, consiste en crear una nueva función llamada por campo donde se sitúa erróneamente el cursor (onfocus="chkres()") tal que...

Código HTML:
function chkres(){
	if(document.form2.contrasena.value==''){
        document.form2.contrasena.focus();
    }	
}
y todo solucionado.

Muy agradecido por vuestras respuestas.

Saludos. Jesús B.
  #9 (permalink)  
Antiguo 13/03/2014, 06:11
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años, 1 mes
Puntos: 67
Respuesta: colocar el puntero en un campo de texto

Pues como te dije a mi me funciona, mira esto:
http://jsfiddle.net/LU4a6/
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #10 (permalink)  
Antiguo 13/03/2014, 13:19
Avatar de Euclides64  
Fecha de Ingreso: octubre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: colocar el puntero en un campo de texto

zalito12, me gusta tu código y efectivamente funciona pero no se ajusta a lo que yo tengo hecho.

La función la llamas al enviar el formulario y yo necesito llamarla al abandonar el foco del campo 'contrasena', la razón es por que existen otras funciones en el mism o formulario y la cosa creo se complicaria para llamar a todas.

Como digo, me gusta tu código que creo es HTML5, me he comprado un libro en ediciones eni de un tal Christophe AUBRY con el que espero aprender algo.

Gracias por tus respuestas. Jesús B.
  #11 (permalink)  
Antiguo 13/03/2014, 15:43
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años, 1 mes
Puntos: 67
Respuesta: colocar el puntero en un campo de texto

Pues de esa manera tambien parece funcionar, incluso sin el if: http://jsfiddle.net/LU4a6/1/

Dejando esto de lado te diré algo que no comentamos, no deberías usar diálogos de ese tipo. A parte de que están bastante obsoletos, la gente los odia, yo los odio y además los puedes desactivar. Utiliza cosas visuales, debajo de los campos o algo pero los diálogos emergentes son como los popups, el anticristo.
Además con HTML5 vienen muchas funciones predefinidas ya que a parte de cambios de etiquetas y otras cosillas HTML5 no deja de ser HTML + JS (cosas básicas).
Por ejemplo podrías hacer algo así:
http://jsfiddle.net/5ymFW/
Y mira esta web, está interesante: http://html5pattern.com/
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #12 (permalink)  
Antiguo 13/03/2014, 17:47
Avatar de Euclides64  
Fecha de Ingreso: octubre-2010
Mensajes: 79
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: colocar el puntero en un campo de texto

Me has dado trabajo.

Muy bueno.

Gracias. Jesús B.

Etiquetas: campo, puntero
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 02:16.