2012-04-24 10 views
5

Necesito anexar - al valor actual del cuadro de texto sin reemplazar el texto presente. Intenté con este código.¿Cómo agregar texto al valor del cuadro de texto usando jQuery?

if(len.length==4){ 
    $("-").appendTo("#date").val(); 
} 

pero falló.

+0

es un campo de entrada con texto tipo o algún otro elemento con texto. No existe un cuadro de texto en HTML y de sus comentarios a continuación parece que no es un campo de entrada –

+0

es un campo de entrada con texto tipo. Necesito agregar - después de los primeros cuatro caracteres. –

Respuesta

13

A pesar de que tienes varios (pero no todas) las respuestas correctas, quiero mostrar otra manera de hacerlo:

$('#date').val(function(index, value) { 
    return value + '-'; 
});​ 

.val(function(index, value))

función (en dex, value) Una función que devuelve el valor para establecer. este es el elemento actual. Recibe la posición del índice del elemento en el conjunto y el valor anterior como argumentos.

source

Si no desea utilizar function por hacerlo, utilice la siguiente:

var $date = $('#date'); 
$date.val($date.val() + '-'); 
+0

thanx dr. Está funcionando. Y buena explicación. –

1

intento:

$('#date').val($('#date').val() + '-'); 
+0

Reemplaza el texto actual. –

+0

[THIS] (http://jsfiddle.net/teneff/T9mUT/) no funciona – Teneff

+0

después de la edición, está funcionando. Gracias. –

5

Tienes que recuperar el valor actual, y anexar a la.

var $date = $('#date'); 
$date.val($date.val() + '-'); 
+0

gracias dr. está funcionando –

+0

+1 para almacenar en caché el elemento DOM. – gdoron

1

La forma más elegante que he encontrado incluye no utilizar tanto jQuery.

if (len.length === 4) { 
    var date = $('#date')[0] // faster to write than "document.getElementById('date')" 
    date.value += '-' 
} 

violín: http://jsfiddle.net/Ralt/T9mUT/3/

+0

No está pasando en un contexto de función a '.val()', por lo que la referencia 'this' puede ser diferente de lo que cree. Definitivamente no va a ser el '$ ('# date')' que acaba de seleccionar. –

+0

[ESTE] (http://jsfiddle.net/teneff/T9mUT/) es su código en jsFiddle y no está funcionando – Teneff

+0

De acuerdo, solo el 'this.value' funciona ... de alguna manera. @RichardNeilIlagan tiene razón en que "esto" no es correcto. http://jsfiddle.net/Ralt/T9mUT/1/ –

2
jQuery('#date').val(jQuery('#date').val() + '-'); 
+2

¿Por qué consulta el DOM dos veces? – gdoron

+0

Acepto que esto no es necesario, pero simplemente intentaba mostrar la sintaxis básica. –

0

Estaba haciendo esto. Usé .append (myValue); aquí estoy repitiendo un conjunto de resultados Ajax:

 $.each(result, function (i, obj) { 
      $.each(obj, function (i, item) { 
       $('#txtValueList').append(item); 
      }) 
     }) 
Cuestiones relacionadas