2012-04-24 103 views
5

我需要追加 - 當前文本框的值,而不會替換現有文本。我試着用這個代碼。如何使用jQuery將文本追加到文本框的值?

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

但它失敗了。

+0

它是一個輸入字段,帶有文本類型或其他元素,並帶有文本。 HTML中沒有這樣的文本框,並且下面的註釋看起來不是輸入字段 – 2012-04-24 06:56:40

+0

它是一個帶有文本類型的輸入字段。我需要添加 - 在第一個四個字符後。 – 2012-04-24 07:05:47

回答

13

雖然你有幾個(但不是全部)正確答案,我想展現另一種方式來做到這一點:

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

.val(function(index, value))

function(in dex,value)返回要設置的值的函數。這是當前的元素。接收集合中元素的索引位置和舊值作爲參數。

source

如果你不想使用function做它,使用:

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

thanx博士。這是工作。和很好的解釋。 – 2012-04-24 07:50:54

1

嘗試:

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

它取代了現在的文字。 – 2012-04-24 06:53:18

+0

[THIS](http://jsfiddle.net/teneff/T9mUT/)編輯後不工作 – Teneff 2012-04-24 07:02:34

+0

,它的工作。謝謝。 – 2012-04-24 07:07:23

5

你要獲取當前值,並追加到

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

謝謝博士。它正在工作 – 2012-04-24 07:15:00

+0

+ 1用於緩存DOM元素。 – gdoron 2012-04-24 07:55:51

1

我找到的最優雅的方式包括不使用jQuery這麼多。

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

小提琴:http://jsfiddle.net/Ralt/T9mUT/3/

+0

您沒有將函數上下文傳遞到'.val()'中,所以'this'引用可能與您想象的不同。這肯定不會是你剛剛選擇的$('#date')。 – 2012-04-24 07:00:41

+0

[這是](http://jsfiddle.net/teneff/T9mUT/)是你在jsFiddle中的代碼,它不工作 – Teneff 2012-04-24 07:01:44

+0

好吧,只有'this.value'工作..不知何故。 @RichardNeilIlagan說'這個'不正確。 http://jsfiddle.net/Ralt/T9mUT/1/ – 2012-04-24 07:02:35

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

爲什麼你查詢DOM兩次? – gdoron 2012-04-24 07:00:34

+0

我同意這是不必要的,但只是試圖顯示非常基本的語法。 – 2012-04-24 07:06:25

0

我只是在做這個。我用.append(myValue);這裏我通過一個Ajax結果集循環:

 $.each(result, function (i, obj) { 
      $.each(obj, function (i, item) { 
       $('#txtValueList').append(item); 
      }) 
     }) 
相關問題