2014-10-30 17 views
9

Tôi đang cố gắng đặt con trỏ của mình ở vị trí bắt đầu khi tôi ở trên tiêu điểm của hộp văn bản. Đây là những gì tôi có:Loại Email không hỗ trợ selectionrange

$("ID").focus(function() { 
    var input = this; 
    setTimeout(function() { 
     input.setSelectionRange(0, 0); 
    }, 0); 
}); 

Nhưng tôi nhận được lỗi này mỗi khi tôi cố gắng để tải các kịch bản:

Uncaught InvalidStateError: Failed to execute 'setSelectionRange' on 'HTMLInputElement': The input element's type ('email') does not support selection.

Guess Tôi không thể sử dụng setSelectionRange trên email. Vì vậy, bất kỳ giải pháp nào khác về cách đặt vị trí con trỏ của tôi trong hộp văn bản đầu vào (mà không thay đổi email loại)?

+0

Không có cách nào xung quanh nó nếu bạn muốn giữ "loại =" email "'. 'Type =" number "' có cùng vấn đề ... bạn có thể nói ý kiến ​​của bạn trong [thảo luận trên w3.org] (https://www.w3.org/Bugs/Public/show_bug.cgi?id= 24796) (nó dành riêng cho đầu vào số; Tôi chưa tìm kiếm một cuộc thảo luận đầu vào kiểu email). Tương tự như http://stackoverflow.com/questions/21177489/selectionstart-selectionend-on-input-type-number-no-longer-allowed-in-chrome – Mottie

Trả lời

0

Tôi biết đó là câu hỏi cũ nhưng tôi sẽ trả lời câu hỏi này để tham khảo trong tương lai.

Đầu vào email với setSelectionRange hiện đang hoạt động với tất cả các trình duyệt chính.

Dưới đây là một ví dụ:

jQuery('.email').focus(function() { 
 
    jQuery(this)[0].setSelectionRange(2, 5); 
 
})
.email 
 
{ 
 
padding: 15px; 
 
    width: 350px 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="email" name="email" class='email' value='testin_email_selection'>

jsFiddle: https://jsfiddle.net/eLz6ukmm/

Tested trong FF33 và Edge.

+6

Nó không hoạt động trong Chrome, mà tôi sẽ xem xét ' trình duyệt chính ':( –

+0

Tăng InvalidStateError trong Firefox 53 –

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