Automatisch een dubbele punt toevoegen na 2 getallen

Status
Niet open voor verdere reacties.

manobano

Nieuwe gebruiker
Lid geworden
5 nov 2007
Berichten
2
Hallo ik ben bezig met een project. En nu loop ik vast.
Ik ben bezig met een formulier waarbij je gewerkte uren moet invullen. ik wil daarbij 1 text veld gebruiken.
Als ik de gewerkte uren nu invul moet ik zelf een dubbele punt invullen.
voorbeeld:
textveld1 (begintijd): 09:00
textveld2 (eindtijd): 13:00
Weten jullie hoe ik automatisch een dubbele ingevuld kan krijgen nadat twee getallen zijn ingevuld.

Bijvoorbeeld hoe zou ik de voglende bewerking in javascript krijgen:
" onkeydown if textfield length = 2 insert character : "

Suggesties iemand, alvast erg bedankt


-------------------------------------------------------- BEWERKT
Ik had net de onderstaande code gedeeltelijk werkend gekregen, Hebben julllie mischien een suggestie om het ook werkend te krijgen onder NIET internet explorer browsers, want de event.keyCode werkt alleen maar met internet explorer:

<html>
<head>
<script type="text/javascript">
function puntjes(x){
var y=document.getElementById(x).value
if(y.length == 2 && event.keyCode!=Cool{
document.getElementById(x).value = y.substr(0,2)+":"+y.substr(3)
}
}
</script>
</head>
<body>
start: <input type="text" id="start" onkeydown="puntjes(this.id)" maxlength="5">
<br />
eind: <input type="text" id="eind" onkeydown="puntjes(this.id)" maxlength="5">
</body>
</html>
 
Laatst bewerkt:
Ik heb geen verstand van java. Maar moet je hiervoor niet een datum/tijd veld gebruiken? En dan aangeven met Right$ (right string) dat je de 4 laatste posities wil hebben?

Dat hierboven is misschien onzin maar iets in die richting?
 
Omdat ik zoveel mogelijk de wensen van mijn opdracht gever wil vervullen koos ik voor deze methode. gewoon 1 text veld waarin de begin tijd moet worden ingevuld en waarbij gelijk een dubbele punt achter gelegd wordt. Met behulp van de event.keyCode kon ik ervoor zorgen dat als de keycode gelijk is aan 8 (wat gelijk is aan backspace) het invullen van de dubbele punt deactiveert. en dan werkt de funtie ook gewoon uitstekend. maar nou weet ik niet wat de event functies zijn voor andere browserss.

suggesties iemand
 
:)
Code:
<script type="text/javascript">
 // Egel 071108 ;)

 function simpleHour(obj) {
  if (obj.value.length == 2) obj.value += ':';
  };

 function checkHour(obj) {
  // Egel 071105 ;)
  // value en memory
  var v = obj.value, m = v;
  //  alles filteren behalve cijfers en :
  v = v.replace(/[^\d\:]/g,'');
  // 0 voorvoegen bij 3 t/m 9 en 0: 1: en 2:
  if (/^[3-9]$/.test(v) || /^[0-2]\:$/.test(v)) v = '0' + v;
  // na twee cijfers : plaatsen
  if (/^[0-9]{2}$/.test(v)) v += ':';
  // maximum lengte 5
  v = v.substring(0,5);
  // evt aanpassen
  if (v != m) obj.value = v;
  };

</script>

<input onkeyup="if (this.value.length == 2) this.value += ':';">

<input onkeyup="simpleHour(this)">

<input onkeyup="checkHour(this)">
De eerste twee plaatsen alleen een : na twee tekens.

De derde is uitgebreider, achter 00 t/m 02 wordt een : geplaatst, bij 0: t/m 2: en 3 t/m 9 wordt er ook nog een nul voorgezet. Verder filterd het verkeerde tekens eruit. :)


Vr.Gr. Egel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan