2013-07-22 44 views
24

Vì vậy, hiện tại tôi có trường nhập văn bản với giá trị cũng được lấy nét tự động.đặt con trỏ ở cuối giá trị của văn bản nhập

Khi tải trang, giá trị được chọn/được đánh dấu. Có cách nào tôi có thể đặt con trỏ ở cuối văn bản giá trị thay vì làm nổi bật nó trong javascript hoặc CSS không?

Đây là một fiddle js nơi giá trị văn bản autofocused được nhấn mạnh: http://jsfiddle.net/TaGL5/

Đây là mã HTML: <input type="text" value="value text" autofocus />

+2

onfocus = "this.value = this.value;" –

+0

onfocus "this.value = this.value" sẽ gán giá trị hiện tại cho hộp văn bản, giống như bạn đã nhập văn bản đó và vì vậy bạn có con trỏ ở cuối. – VishalDevgire

+1

có thể trùng lặp của [Sử dụng JavaScript để đặt con trỏ ở cuối văn bản trong phần tử nhập văn bản] (http://stackoverflow.com/questions/511088/use-javascript-to-place-cursor-at-end-of-text- in-text-input-element) – Gary

Trả lời

45

này làm việc cho tôi

<input type="text" autofocus value="value text" onfocus="this.value = this.value;"/>

+1

thú vị. Bất kỳ ý tưởng tại sao hoặc cách thức hoạt động? –

+0

@Gary: Cảm ơn! –

+4

Chỉ cần cập nhật, điều này hoặc không còn hoạt động trong FF, hoặc không bao giờ làm. Trong phiên bản hiện tại của FF, nó chọn toàn bộ văn bản, nó không đặt con trỏ sau. – vol7ron

5

Sử dụng Jquery cho việc này:

$(function() { 
 
     var input = $("#txt1"); 
 
    var len = input.val().length; 
 
    input[0].focus(); 
 
    input[0].setSelectionRange(len, len); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 

 
<input type="text" id="txt1" value="Lorem" style="width:400px;" />

Nhưng một số trình duyệt không hỗ trợ enter code here sở hữu, trong trường hợp sử dụng này:

$(document).ready(function(){ 
 
    $("#search").focus(function(){ 
 
     if (this.setSelectionRange) 
 
     { 
 
     var len = $(this).val().length; 
 
     this.setSelectionRange(len, len); 
 
     } 
 
     else 
 
     { 
 
     $(this).val($(this).val()); 
 
     } 
 
    
 
}); 
 

 
$("#search").focus(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 

 
<input id="search" type="text" value="mycurrtext" size="30" name="search" />

Câu hỏi này đã tồn tại trên stackoverflow:

Reference1

Reference2

+0

Đó là một chút quá mức cần thiết để sử dụng thư viện của bên thứ ba cho một nhiệm vụ dễ dàng như vậy – shi

12

Nâng cấp lên câu trả lời @ Harsha của: Tôi thấy rằng để làm cho giải pháp làm việc với Firefox, chúng ta cần giá trị thiết lập lại tạm thời để "không-bình đẳng của giá trị", sau đó đặt nó trở lại

<input type="text" autofocus value="value text" onfocus="var temp_value=this.value; this.value=''; this.value=temp_value" />

+0

Phải, nhưng nếu bạn để sử dụng phương pháp của chenosaurus, bạn cũng có thể trích dẫn anh ta: http: // stackoverflow.com/a/2345915/183181 – vol7ron

+3

@ vol7ron * "phương pháp của chenosaurus" *: D – yckart

0

bạn có thể thêm tham số này để trường nhập văn bản của bạn:

onmouseover="this.setSelectionRange(this.value.length,this.value.length);" 

NB: Hoạt động tốt dưới Chromium vào năm 2017.

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