2012-04-24 49 views
5

Tôi cần nối thêm - vào giá trị hộp văn bản hiện tại mà không thay thế văn bản hiện tại. Tôi đã thử với mã này.Làm cách nào để nối thêm giá trị văn bản vào hộp văn bản bằng jQuery?

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

nhưng không thành công.

+0

là trường nhập với văn bản loại hoặc một số phần tử khác có văn bản trong đó. Không có điều gì như một hộp văn bản trong HTML và từ bình luận của bạn dưới đây có vẻ như nó không phải là một lĩnh vực đầu vào –

+0

nó là một lĩnh vực đầu vào với văn bản loại. Tôi cần phải thêm - sau bốn ký tự đầu tiên. –

Trả lời

13

Mặc dù bạn có một số (nhưng không phải tất cả) đáp án đúng, tôi muốn thể hiện một cách khác để làm điều đó:

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

.val(function(index, value))

chức năng (trong dex, value) Hàm trả về giá trị cần đặt. đây là phần tử hiện tại. Nhận vị trí chỉ mục của phần tử trong tập hợp và giá trị cũ làm đối số.

source

Nếu bạn không muốn sử dụng function cho làm việc đó, sử dụng này:

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

thanx dr. Nó đang làm việc. Và lời giải thích tốt đẹp. –

1

thử:

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

Nó thay thế văn bản hiện tại. –

+0

[THIS] này (http://jsfiddle.net/teneff/T9mUT/) không hoạt động – Teneff

+0

sau khi chỉnh sửa, nó hoạt động. cảm ơn. –

5

Bạn đã có để lấy giá trị hiện tại, và nối thêm để đó.

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

cảm ơn dr. nó đang làm việc –

+0

+1 để lưu vào bộ nhớ cache phần tử DOM. – gdoron

1

Cách thanh lịch nhất mà tôi đã tìm thấy bao gồm không sử dụng jQuery nhiều.

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

Bạn không chuyển ngữ cảnh hàm vào '.val()', vì vậy tham chiếu 'this' này có thể khác với bạn nghĩ. Nó chắc chắn sẽ không phải là '$ ('# date')' mà bạn vừa chọn. –

+0

[NÀY] (http://jsfiddle.net/teneff/T9mUT/) là mã của bạn trong jsFiddle và nó không hoạt động – Teneff

+0

Được rồi, chỉ có 'this.value' hoạt động .. bằng cách nào đó. @RichardNeilIlagan là đúng trong đó 'this' là không chính xác. http://jsfiddle.net/Ralt/T9mUT/1/ –

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

Tại sao bạn truy vấn DOM hai lần? – gdoron

+0

Tôi đồng ý điều này là không cần thiết, nhưng chỉ đơn giản là cố gắng hiển thị cú pháp rất cơ bản. –

0

Tôi chỉ làm điều này. Tôi đã sử dụng .append (myValue); ở đây tôi đang lặp qua một tập hợp kết quả Ajax:

 $.each(result, function (i, obj) { 
      $.each(obj, function (i, item) { 
       $('#txtValueList').append(item); 
      }) 
     }) 
Các vấn đề liên quan