Reputation: 410
I would like to use .onkeydown
to restrain my input field. I wrote this function, but I'd like to use it in an if condition
, to check if entry keys are right or wrong.
But I don't know how form should I use in my if
to call this function, because actually it's not really an Angular scope function, but a JS one...
var cpNumber = document.getElementById("cpNumber");
cpNumber.onkeydown = function(e) {
if((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| ((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCorde == 65))
|| ((e.keyCode > 47 && e.keyCode < 58)
|| (e.keyCode == 65))
|| ((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCorde == 66))
|| ((e.keyCode > 47 && e.keyCode < 58)
|| (e.keyCode == 66))
|| e.keyCode == 8) {
return true;
} else {
return false;
}
};
// If condition, check if entry keys are wrong.
// I tried cpNumber.onkeydown(e), but the "e"
// seems drop from the sky, it always shows "false".
if(cpNumber.onkeydown(e) === false) {
alertPopup = $ionicPopup.alert({
title: 'Oups...',
cssClass: 'pop',
template: '<div class="center-form">This is Wrong !</div>'
});
}
<form>
<input class="input"
type="text"
id="cpNumber"
maxlength="5"
ng-model="cp"
placeholder="CP">
</form>
Upvotes: 0
Views: 935
Reputation: 512
Event cannot be called this way. For making your program functional you can add a function in your else block and call it and do whatever you want. PLUS you can also pass your event to function. So that will serve as an added advantage. HTML:
<form><input class="input" type="text" id="cpNumber" maxlength="5" ng-model="cp" placeholder="CP"></form>
Script::
ar cpNumber = document.getElementById("cpNumber");
cpNumber.onkeydown = function(e) {
if((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| ((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCorde == 65))
|| ((e.keyCode > 47 && e.keyCode < 58)
|| (e.keyCode == 65))
|| ((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCorde == 66))
|| ((e.keyCode > 47 && e.keyCode < 58)
|| (e.keyCode == 66))
|| e.keyCode == 8)
{
return true;
}
else
{
notAllowed(e);
}
};
// If condition, check if entry keys are wrong. I tried cpNumber.onkeydown(e), but the "e" seems drop from the sky, it always shows "false".
function notAllowed (ev) {
alertPopup = $ionicPopup.alert({
title: 'Oups...',
cssClass: 'pop',
template: '<div class="center-form">This is Wrong !</div>'
});
}
Upvotes: 1
Reputation: 64
You need to put the calls in the blocks themselves. Here's a fiddle for you to look at:
https://jsfiddle.net/tsamzx6h/
if((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCode > 47 && e.keyCode < 58)
|| ((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCorde == 65))
|| ((e.keyCode > 47 && e.keyCode < 58)
|| (e.keyCode == 65))
|| ((e.keyCode > 95 && e.keyCode < 106)
|| (e.keyCorde == 66))
|| ((e.keyCode > 47 && e.keyCode < 58)
|| (e.keyCode == 66))
|| e.keyCode == 8)
{
alert("Good!");
}
else
{
alert("Wrong");
}
Upvotes: 2