Ik heb een input veld:
<input type="text" name="MyInput" onKeyPress="checkKeyPressed('uint')">
In dit veld mogen alleen unsigned integers komen, dus daarvoor wil ik de functie "checkKeyPressed" gebruiken. Op dit moment ziet die functie er zo uit:
Deze functie werkt in principe goed, maar het probleem treedt op als er een waarde in het veld staat die geselecteerd is. Bijv: waarde is 666 en is geselecteerd, dan is vervolgens de lengte niet 0 als er op een knop wordt gedrukt, dus zal het input filter een de min niet accepteren.
Ik moet dus op iets anders checken, maar wat?
<input type="text" name="MyInput" onKeyPress="checkKeyPressed('uint')">
In dit veld mogen alleen unsigned integers komen, dus daarvoor wil ik de functie "checkKeyPressed" gebruiken. Op dit moment ziet die functie er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| function checkKeyPressed(datatype) {
event.returnValue = true;
event.cancelBubble = false;
var keypressed = String.fromCharCode(event.keyCode);
if (datatype == 'uint') {
if (!keypressed.match(/\d/) ||
(keypressed.match(/[-]/) && (document.myForm.myInput.value.length == 0))) {
event.returnValue = false;
event.cancelBubble = true;
}
}
} |
Deze functie werkt in principe goed, maar het probleem treedt op als er een waarde in het veld staat die geselecteerd is. Bijv: waarde is 666 en is geselecteerd, dan is vervolgens de lengte niet 0 als er op een knop wordt gedrukt, dus zal het input filter een de min niet accepteren.
Ik moet dus op iets anders checken, maar wat?