Non ero soddisfatto di nessuno dei selettori di tempo suggeriti, quindi ho creato il mio ispirandomi alle specifiche di Perifer e HTML5:
http://github.com/gregersrygg/jquery.timeInput
È possibile utilizzare i nuovi attributi html5 per l'input temporale (passo, minimo, massimo) o utilizzare un oggetto opzioni:
<input type="time" name="myTime" class="time-mm-hh" min="9:00" max="18:00" step="1800" />
<input type="time" name="myTime2" class="time-mm-hh" />
<script type="text/javascript">
$("input[name='myTime']").timeInput();
$("input[name='myTime2']").timeInput({min: "6:00", max: "15:00", step: 900});
</script>
Convalida l'input in questo modo:
- Inserisci ":" se mancante
- Orario non valido? Sostituisci con vuoto
- Non è un orario valido in base al passaggio? Arrotonda per eccesso / per difetto al passaggio più vicino
La specifica HTML5 non consente am / pm o sintassi dell'ora localizzata, quindi consente solo il formato hh: mm. I secondi sono consentiti secondo le specifiche, ma non l'ho ancora implementato.
È molto "alpha", quindi potrebbero esserci alcuni bug. Sentiti libero di inviarmi patch / richieste pull. Hanno testato manualmente in IE 6 e 8, FF, Chrome e Opera (l'ultimo stabile su Linux per questi ultimi).