2009-03-18 9 views
6

Qualcuno può mostrarmi qualche esempio per limitare l'input dell'utente (sul tag di input) in Javascript?limitare l'input dell'utente usando javascript

Qualcosa che, quando abbiamo fissato l'input (type = "text") per accettare solo numerico, quindi ignorerà qualsiasi altro ingresso ad eccezione numerica ...

Penso che sia a portata di mano per l'input numerico (come ad esempio zip, carta di credito, il denaro, il valore, il punteggio, data, ecc ...), e se è possibile si prega di mostrarmi come creare in ingresso con il modello, qualcosa di simile a:

 
Please Input Date: 
|-----------------| 
| / / | 
|-----------------| 

PS: ho sentito WebForms 2.0 supporterà questo in futuro ... (browser compatibile con Acid 3?)

input type = "data"
tipo input = "tempo"
input type = "numero"
input type = "denaro"

Ma era solo notizie dal futuro: D

risposta

8

Questo potrebbe aiutarti.

http://www.w3schools.com/jsref/event_onkeydown.asp

<html> 
<body> 

<script type="text/javascript"> 
function noNumbers(e) 
{ 
var keynum; 
var keychar; 
var numcheck; 

if(window.event) // IE 
{ 
keynum = e.keyCode; 
} 
else if(e.which) // Netscape/Firefox/Opera 
{ 
keynum = e.which; 
} 
keychar = String.fromCharCode(keynum); 
numcheck = /\d/; 
return !numcheck.test(keychar); 
} 
</script> 

<form> 
<input type="text" onkeydown="return noNumbers(event)" /> 
</form> 

</body> 
</html> 
+0

Sì, questo funziona per il semplice filtro dei caratteri ... ma per i formati completi come una data ("mm/gg/aa"). Non puoi semplicemente restituire false se non è il formato corretto altrimenti non sarai mai in grado di inserire le prime cifre. –

+1

No, è vero, ma dà una certa idea su come potrebbe essere fatto. Fx. saresti in grado di digitare 0 e 1 solo nel primo carattere della stringa della data. Se l'utente digitasse un numero sopra questo, il numero non verrebbe registrato. Ma sì, questi codici specifici non fanno tutta la magia. –

+0

sì, ho appena commentato per chiarezza;) –

3

Puoi usare librerie specifiche come jQuery Validate (o qualunque sia il tuo framework JS) sul modulo submit. L'altra soluzione consiste nel controllare il valore sugli eventi di sfocatura keyUp & ma può diventare piuttosto complicato decidere cosa fare con l'ingresso non formattato (specialmente quando il formato è un po 'complesso, ovvero non solo caratteri indesiderati). Quindi, tutto sommato, consiglierei il controllo lato client su submit.

+0

Ho già un metodo di convalida dell'invio del modulo: D – Dels

5

Questa domanda ha già una risposta accettata, ma penso che ci sia una soluzione migliore a questo. Non devi implementarlo tu stesso su keydown ecc., Ci sono librerie per questo. Chiamano la tecnica che descrivi "maschere di input". Controlla this jQuery plugin fa esattamente quello che vuoi.

+1

Questo plugin jQuery è fantastico. – Matthew

+0

Adoro quel plug-in, ma il problema rimane con più dispositivi Android su browser sia nativi che chrome in cui ci sono troppi problemi. Per la maggior parte, quando si tratta di androidi, in genere finisco per rimuovere completamente la maschera. –

Problemi correlati