2012-01-15 12 views
16

Sono consapevole di questo:Come rendere il campo di input digita sia numerico che password?

<input type="tel"> 

e sono consapevoli di questo:

<input type="password"> 

ma vorrei usare entrambi. Voglio che il tastierino numerico venga visualizzato su iOS (in particolare), ma nascondere ogni carattere dopo averlo digitato. È possibile qualcosa del genere?

<input type="tel|password"> 
+2

Questo dovrebbe essere il motivo per cui lavori: http://stackoverflow.com/a/8334379/947898. – uadrive

risposta

1

È possibile effettuare la password tipo di ingresso e quindi utilizzare javascript per convalidare che solo i numeri sono stati inseriti quando è stato premuto il pulsante di invio. http://www.configure-all.com/javascript_form_validation.php

+1

Anche questa sarebbe stata la mia risposta, ma sembra che l'OP voglia abilitare alcune caratteristiche dell'interfaccia utente specifiche per iOS che sono normalmente attivate da 'type =" tel "'. Non credo che la convalida dell'input di JS possa essere d'aiuto. –

+0

Il link per la risposta non è più valido. Quale sarebbe un collegamento aggiornato per aiutare? – Whitecat

8

html di casella di input:

<input type="tel" name="password" id="password" value="" placeholder="Enter password" 
    onfocus="changeToPassword()"> 

Javascript:

// change the type of the input to password 
function changeToPassword() { 
    setTimeout(function() { 
     document.getElementById("password").setAttribute("type", "password") 
    }, 500); 
} 

Questa soluzione funziona su iPhone. Questo è un tipo di hack. Una volta ottenuto il tastierino numerico nei successivi 500 millisecondi, si modifica l'attributo alla password e questo inganna il telefono.

+2

Questo non funzionerà di nuovo. Dopo che qualcuno ha inserito le informazioni e si è spento e ha cercato di reinserire le informazioni, ora il tipo è già impostato su password, la tastiera numerica non verrà. – Fyre

15

Per iOS è possibile impostare l'ingresso di tipo "password" e ancora attivare l'numerico della tastiera utilizzando l'HTML5-attributo "pattern":

<input type="password" pattern="[0-9]*" ... /> 

Dal Apple-Documentation:

Per visualizza una tastiera numerica, imposta il valore dell'attributo pattern su "[0-9] " o "\ d".

+0

Questa risposta è sottovalutata e un modo molto migliore per realizzare ciò che è stato chiesto, in particolare in iOS. –

+3

Sfortunatamente, non funziona su Android – SILENT

+2

Questo non funzionerà su iOS, almeno su iOS9. l'impostazione del tipo di password invalida gli attributi pattern e inputmode. – cduguet

Problemi correlati