Ciao a tutti,
sto scrivendo una funzione che ha come scopo quello di agevolare l'inserimento di date ed ore tramite il completamento automatico con i caratteri separatori per i due formati ( "/" per le date e ":" per le ore).
Mostro due campi vuoti per data ed ora, rispettivamente con i valori iniziali "__/__/____" e "__:__" e sull'evento onKeyPress, controllo innanzitutto se si tratta di un carattere numerico oppure di uno backslash (per la cancellazione), quindi procedo con il replace della prima occorrenza di "_".
Il problema è che dopo il replace, il cursore all'interno della stringa si sposta alla fine, quindi l'utente dovrebbe tornare indietro.
Ecco la mia pagina html con il codice javascript embedded:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test Page</title>
<script>
function isNumber(event){
var unicode = event.charCode? event.charCode : event.keyCode
var c = String.fromCharCode( event.charCode ? event.charCode : event.keyCode );
return ( ("0123456789").indexOf(c) != -1 );
}
function isBackSpace(e){
var unicode = e.charCode? e.charCode : e.keyCode
return (unicode == 8);
}
function formatHour( object, event ) {
var validate = isBackSpace(event) || isNumber(event) ;
if (validate && isNumber(event) ) {
var c = String.fromCharCode( event.charCode ? event.charCode : event.keyCode );
var firstUnderScore = object.value.indexOf('_');
var newValue = object.value.replace('_', c );
object.value = newValue;
}
return validate;
}
function formatTime( object ) {
}
</script>
</head>
<body>
<span>Time:</span><input type="text" name="value1" maxlength="5" value="__:__ " onkeypress =" return formatHour( this, event ); " />
<span>Date:</span><input type="text" name="value2" maxlength="10" value="__/__/____" onkeypress =" return formatTime(this, event);" />
</body>
</html>