2012-04-24 6 views
5

Мне нужно добавить в настоящее текстовое поле значение без замены существующего текста. Я пробовал с этим кодом.Как добавить текст в текстовое поле с помощью jQuery?

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

но это не удалось.

+0

Это поле ввода с текстом типа или другим элементом с текстом в нем. Там нет такой вещи, как текстовое поле в HTML и из ваших комментариев ниже, кажется, что это не поле ввода –

+0

это поле ввода с текстом типа. Мне нужно добавить - после первых четырех символов. –

ответ

13

Хотя у вас есть несколько (но не все) правильные ответы, я хочу показать еще один способ сделать это:

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

.val(function(index, value))

функция (в dex, value) Функция, возвращающая значение для установки. это текущий элемент. Получает индексную позицию элемента в наборе и старое значение в качестве аргументов.

source

Если вы не хотите использовать function для делать это, используйте:

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

thanx dr. Это работает. И приятное объяснение. –

1

попробовать:

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

Он заменяет настоящий текст. –

+0

[ЭТО] (http://jsfiddle.net/teneff/T9mUT/) не работает – Teneff

+0

после редактирования, он работает. Благодарю. –

5

Вы должны получить текущее значение, и добавить к этому.

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

спасибо dr. он работает –

+0

+1 для кэширования элемента DOM. – gdoron

1

Самый элегантный способ, который я нашел, включает в себя не столько использование jQuery.

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

Fiddle: http://jsfiddle.net/Ralt/T9mUT/3/

+0

Вы не передаете контекст функции в '.val()', поэтому ссылка 'this' может отличаться от вашей мысли. Это определенно не будет '' $ ('# date') 'вы только что выбрали. –

+0

[ЭТО] (http://jsfiddle.net/teneff/T9mUT/) - это ваш код в jsFiddle и он не работает – Teneff

+0

Хорошо, только 'this.value' работает .. как-то. @RichardNeilIlagan прав в том, что «это» неверно. http://jsfiddle.net/Ralt/T9mUT/1/ –

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

Зачем вы запрашиваете DOM дважды? – gdoron

+0

Я согласен, что это не нужно, но просто пыталась показать основной синтаксис. –

0

Я просто делал это. Я использовал .append (myValue); здесь я перехожу через набор результатов Ajax:

 $.each(result, function (i, obj) { 
      $.each(obj, function (i, item) { 
       $('#txtValueList').append(item); 
      }) 
     }) 
Смежные вопросы