2014-10-30 10 views
9

Sto provando a impostare il cursore sulla posizione dell'inizio quando sono a fuoco di una casella di testo. Questo è quello che ho:L'email di tipo non supporta la selezione

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

Ma io ottenere questo errore ogni volta che provo a caricare lo script:

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

immagino di non poter utilizzare setSelectionRange su e-mail. Quindi, qualsiasi altra soluzione su come impostare la posizione del cursore nella casella di testo di input (senza modificare il tipo di email)?

+0

Non c'è modo di aggirarlo se si desidera mantenere il 'type =" email "'. Il 'type =" numero "' ha lo stesso problema ... puoi esprimere la tua opinione nella [discussione su w3.org] (https://www.w3.org/Bugs/Public/show_bug.cgi?id= 24796) (è specifico per gli input numerici; non ho cercato una discussione di input di tipo email). Simile a http://stackoverflow.com/questions/21177489/selectionstart-selectionend-on-input-type-number-no-longer-allowed-in-chrome – Mottie

risposta

0

So che è una domanda vecchia ma risponderò per riferimenti futuri.

L'input di posta elettronica con setSelectionRange funziona attualmente con tutti i principali browser.

Ecco un esempio:

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/

testato in FF33 e Edge.

+6

Non funziona in Chrome, che considererei un ' browser principale ':( –

+0

genera un errore InvalidStateError in Firefox 53 –

Problemi correlati