webForumDet fria alternativet

Automatiskt lägg till ett tecken i formulär...

JavaScript

4 svar · 229 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Hej...

Vill skapa en funktion som automatiskt lägger till ett : efter man har skrivit in två siffror i ett text fält.

Det ska bli ett klockslag som måste ha ett kolon i mitten. Är dock osäker på hur användarna brukar skriva sina klockslag. Punkt får inte användas (eller snarare ska omvandlas till :)

Är det någon som har något förslag på hur man gör något liknande?

Medlem sedan maj 20012 080 inlägg
#2

Jag löste problemet med ASP (vbscript) istället. Det hade dock varit snyggare rent UI-mässigt om javascriptet hade gjort det i realtid istället.

if len(sBookedToTime) = 5 then
	varMinuter = left(sBookedToTime,2)
	varSekunder = right(sBookedToTime,2)
	sBookedToTime = varMinuter &":" &varSekunder
elseif len(sBookedToTime) = 4 then
	varMinuter = left(sBookedToTime,2)
	varSekunder = right(sBookedToTime,2)
	sBookedToTime = varMinuter &":" &varSekunder
end if
Medlem sedan nov. 20017 144 inlägg
#3

Säkert inte 100% optimerat, men det funkar.

<script>
 function pop(){
 var tmpString = document.f.tidtemp.value;
 if(tmpString.length >1){
document.f.tid.value=document.f.tid.value+tmpString.substring(0,2)+":";
   document.f.tidtemp.value='';
   document.f.tid.value=document.f.tid.value.substring(0,8);
   }
}
</script>                        
   <form name="f">
   <input type="text" onkeyup="pop()" name="tidtemp">
   <input type="text" name="tid" onfocus="this.blur()">
   </form>
Medlem sedan nov. 20017 144 inlägg
#4

Ändra till: document.f.tid.value=document.f.tid.value.substring(0,5);
Om du inte vill ha sekunder

Medlem sedan maj 20012 080 inlägg
#5

Mitt formulär innehåller enbart ett klockslag, inte ett helt datum.

Detta fungerar bra... TACK !

					<script>
					function pop_to_time(){
					var tmpString = document.form_book_this.req_booked_to_time.value;
						if(tmpString.length == 2){
						document.form_book_this.req_booked_to_time.value = tmpString.substring(0,2) + ":" ;
						}
					}
					</script>

Det enda som är irriterande är att om man skriver fel datum så är det lite svårt att sudda bort det gamla. Använder man backspace så får du ju bara radera två tecken...

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)