2014-10-30 13 views
9

Bir metin kutusunun odak noktasında olduğumda, imleci başlangıç ​​konumuna ayarlamaya çalışıyorum. Bu benim ne var:Tür E-posta, seçim kutusunu desteklemiyor

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

Ama bu hatayı Senaryoyu yüklemeyi deneyin her zaman olsun:

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

Guess I e-postaların üzerine setSelectionRange kullanamazsınız. Yani, imleç konumumu giriş metin kutusuna nasıl ayarlayacağınıza dair diğer çözümler (tip e-postasını değiştirmeden)?

+0

Eğer 'type =" email "' i tutmak istiyorsanız, bunun dışında bir yolu yoktur. 'Type = "number" 'aynı soruna sahiptir ... [w3.org]' da tartışmanızdaki düşüncelerinizi dile getirebilirsiniz (https://www.w3.org/Bugs/Public/show_bug.cgi?id= 24796) (özellikle sayı girişleri içindir; bir e-posta türü giriş tartışması aramamıştım). Http://stackoverflow.com/questions/21177489/selectionstart-selectionend-on-input-type-number-no-longer-allowed-in-chrome – Mottie

cevap

0

Bunun eski bir soru olduğunu biliyorum, ancak gelecekteki referanslar için cevaplayacağım.

SetSelectionRange ile e-posta girdisi şu anda tüm önemli tarayıcılarda çalışıyor.

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/ FF33 ve Edge test İşte

bir örnektir.

+6

ile benzerlik gösterir. büyük tarayıcı ':( –

+0

Firefox 53'teki InvalidStateError'ı yükseltir –