2011-10-30 29 views
19

Tôi muốn đặt con trỏ vào trường nhập sau khi nhấp vào liên kết cụ thể. Tôi đang sử dụng nó cho một công cụ tìm kiếm nhỏ.jQuery - Đặt con trỏ vào trường nhập khi liên kết được nhấp

Hãy tưởng tượng trường nhập: []. Sau đó, một số liên kết thêm chuỗi như: Đan Mạch, Anh, v.v. vào trường nhập.

Bây giờ tôi cần đặt con trỏ như sau: "Đan Mạch, [ở đây]".

Điều này có khả thi không?

* CẬP NHẬT *

Tôi đang sử dụng mã này ngay bây giờ để thay thế các văn bản, làm thế nào bạn thêm "vị trí con trỏ" -trick với điều này?

$('#denmark').click(function(){  
    $('#searchBoxBig').val('Denmark, '); 
}); 
+0

Bạn có muốn nhiều lần nhấp để thêm hoặc thay thế văn bản không? –

+0

Thay thế văn bản .. Tôi đã cập nhật câu hỏi bằng văn bản tôi sử dụng ngay bây giờ – skolind

+0

Nếu bạn cũng muốn di chuyển dấu mũ ở phần hiển thị của trình duyệt, hãy xem câu trả lời này: http://stackoverflow.com/câu hỏi/7892902/có thể-to-scroll-caret-into-view-bên trong-a-single-html-text-field-với-javascri/7893633 # 7893633 –

Trả lời

23

Bạn có thể đặt nơi con trỏ nằm trong hộp nhập với thuộc tính selectionStartselectionEnd. Nếu bạn không muốn bất kỳ văn bản được chọn, chỉ cần làm cho chúng bằng nhau.

Đây là cách bạn có thể làm điều đó:

var input = $("input"); 
input[0].selectionStart = input[0].selectionEnd = input.val().length; 
+0

Nevermind, điều này đã làm nó. Thật tuyệt vời! Cảm ơn Charlie! :) – skolind

+0

điều này không hoạt động trên safari di động đối với tôi, đã phải sử dụng câu trả lời của Nicolas Modrzyk. – Sebastian

2
$(":input[name=xxxx]").focus(); 

Ah, bạn cần con trỏ là sau khi tất cả các văn bản không? Hãy xem ở đây: jQuery Set Cursor Position in Text Area nó hoạt động tương tự cho một đầu vào thay vì một vùng văn bản.

Điều này cũng hoạt động nếu bạn sử dụng các bộ chọn khác.

33

có, bắt sự kiện click vào neo ngăn chặn hành động mặc định và tập trung vào lĩnh vực này.

ngữ cảnh chức năng chứa phần tử đã được nhấp để bạn có thể tính toán trường nào để áp dụng cuộc gọi lấy nét.

$(anchorSelector).live("click", function(e) { 
    e.preventDefault(); 

    $(fieldSelector).focus() 

    return false; 
}) 
+0

Tôi đã cập nhật câu hỏi, làm cách nào bạn thêm mẹo vào mã hiện tại của tôi, để thay thế văn bản? – skolind

+2

Đây là con đường để đi! – blackhawk

+0

điều này cũng hoạt động trên safari di động! cảm ơn! – Sebastian

Các vấn đề liên quan