2008-11-17 16 views
25

Tengo un cuadro de texto cuyo valor quiero establecer en función del texto interno de una etiqueta de anclaje. En otras palabras, cuando alguien hace clic en este anclaje:¿Cómo configuro el valor de un cuadro de texto usando un delimitador con jQuery?

<a href="javascript:void();" class="clickable">Blah</a> 

Quiero que mi cuadro de texto para rellenar con el texto "bla bla". Aquí está el código que estoy usando actualmente:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a.clickable").click(function(event){ 
      $("input#textbox").val($(this).html()); 
     }); 
    }); 
</script> 

Y en mi html hay una lista de etiquetas de anclaje con la clase "hacer clic" y un cuadro de texto con el "cuadro de texto" Identificación.

He sustituido el código anterior con el código para mostrar una alerta de javascript con $ (this) .html() y parece mostrar el valor correcto. También he cambiado el $ (this) .html() para que sea una cadena codificada y el valor del cuadro de texto sea el correcto. Pero cuando los combino, el cuadro de texto simplemente se borra. ¿Qué estoy haciendo mal?

Respuesta

52

me escribió este fragmento de código y funciona bien:

<a href="#" class="clickable">Blah</a> 
<input id="textbox"> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a.clickable").click(function(event){ 
      event.preventDefault(); 
      $("input#textbox").val($(this).html()); 
     }); 
    }); 
</script> 

Quizás olvidó de dar un nombre de clase "hacer clic" para sus enlaces?

+0

Gracias por eso. De su código pude decir qué salió mal. Era un problema de espacio en blanco (tenía el texto real dentro de la etiqueta de anclaje en una línea separada). –

6

Solo para tener en cuenta que el prefijo de tagName en un selector es más lento que solo usar el id. En su caso jQuery obtendrá todas las entradas en lugar de simplemente usar el getElementById. Simplemente use $ ('# textbox')

+1

Esta respuesta probablemente sería mejor como un comentario sobre la pregunta. – icktoofay

1

Siguiendo redsquare: No debe usar en el atributo href el código de javascript como "javascript: void();" - está mal. Mejor uso, por ejemplo, href = "#" y luego en su controlador de eventos como último comando: "return false;". Y aún mejor: utilícelo en el enlace correcto de href. Si el usuario tiene javascript desactivado, el navegador web sigue el enlace; en este caso, su página web debe volver a cargarse con la entrada que contiene el valor de ese enlace.

4

Para asignar el valor de un cuadro de texto cuyo ID es "cuadro de texto" en jQuery por favor las siguientes

$ ("# cuadro de texto"). Get (0) .Value = "bla"

+1

Acabo de utilizar esta sintaxis en mi mismo problema y, ¡increíblemente, funcionó! ¡Gracias! – rixter

14

Para asignar el valor de un cuadro de texto cuyo id es ёtextboxё en jQuery por favor haga lo siguiente

$("#textbox").val('Blah'); 
+1

Creo que la persona que hizo la pregunta ya lo sabía, como puede ver en su código. – icktoofay

Cuestiones relacionadas