JQuery - focus dentro de blur

   
Vista:

focus dentro de blur

Publicado por Joseba (1 intervención) el 02/03/2016 11:09:15
Hola tengo un código que no está funcionando

El focus no lo hace.

1
2
3
4
$('#FechaInicio').blur(function() {
    if($('#FechaInicio').val().length > 0 && $('#FechaInicio').val().length < 10){
        $('#FechaInicio').focus();
        ....

Alguna sugerencia?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

focus dentro de blur

Publicado por xve (557 intervenciones) el 02/03/2016 16:15:16
Hola Joseba, he preparado un simple ejemplo, y la verdad es que no vuelve a poner el foco...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<script type="text/javascript" src="//code.jquery.com/jquery-2.2.0.min.js"></script>
</head>
<body>
 
<input type="text" id="FechaInicio">
 
<script>
$('#FechaInicio').blur(function() {
    $('#FechaInicio').focus();
});
</script>
 
</body>
</html>

No entiendo muy bien porque no lo hace...pero he probado con dos cuadros de texto, y si funciona...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<script type="text/javascript" src="//code.jquery.com/jquery-2.2.0.min.js"></script>
</head>
<body>
 
<input type="text" id="FechaInicio">
<input type="text" id="FechaInicio2">
 
<script>
$('#FechaInicio2').blur(function() {
    $('#FechaInicio').focus();
});
</script>
 
</body>
</html>

Por alguna razón, no permiten un blucle infinito enviando el foco al mismo elemento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

focus dentro de blur

Publicado por Joseba (3 intervenciones) el 03/03/2016 11:16:01
Gracias por responder.
Lo del focus a otro elemento ya lo había probado para cerciorarme de que el focus estaba funcionado (nunca se sabe :))

Al final no necesito hacerlo ya que he implementado otra cosa con un plugin.
Quizá sea porque el evento blur se realiza después del resto de intrucciones que hay dentro de la función.
Es algo curioso cuando menos.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

focus dentro de blur

Publicado por arck (21 intervenciones) el 03/03/2016 11:48:51
La idea es quitar el and y poner un or.

Con el or lo hace bien.

1
2
3
4
$('#FechaInicio').blur(function() {
                if($('#FechaInicio').val().length<1 || $('#FechaInicio').val().length>10)
                $('#FechaInicio').focus();
            });

Si usas el and nunca se va a dar el caso que sea menor que 0 y mayor que 10 a la vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

focus dentro de blur

Publicado por Joseba (3 intervenciones) el 03/03/2016 12:12:11
El caso expuesto es para quye haga el focus cuando el length esté comprendido entre 1 y 9.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

focus dentro de blur

Publicado por arck (21 intervenciones) el 03/03/2016 13:31:49
pues a mi me funciona

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
    <head>
 
    </head>
    <body>
        <input id="FechaInicio">
        </br>
        </br>
        </br>
        <input id="FechaInicio">
        <script src="https://code.jquery.com/jquery-1.12.1.js"></script>
        <script type="text/javascript">
           $('#FechaInicio').blur(function() {
                if($('#FechaInicio').val().length>0 && $('#FechaInicio').val().length<10)
                $('#FechaInicio').focus();
            });
        </script>
    </body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

focus dentro de blur

Publicado por Joseba (3 intervenciones) el 03/03/2016 16:08:43
¿Te hace el focus()?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

focus dentro de blur

Publicado por arck (21 intervenciones) el 03/03/2016 17:11:56
si, el código que he puesto me mantiene el focus en el input siempre que ponga algo de 2 dígitos por ejemplo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar