Memphis
Memphis

Reputation: 410

Using OnkeyDown as an if condition Javascript

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

Answers (2)

Nitesh Rana
Nitesh Rana

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

Qiqo
Qiqo

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

Related Questions