无法在angularjs指令中正确使用按键事件

时间:2014-04-02 11:12:22

标签: angularjs angularjs-directive

我正在编写指令进行验证。我输入了现场员工编号。当我输入第一个数字时,我无法获得我输入的值。当我输入第二个数字时 我能得到第一个数字..

Html代码

  <input   type="text"  maxlength="7"  ng-model="empno" emp-validator   >

指令代码

   app.directive('empValidator',function(){
         return  {
           restrict: 'A',
           link : function(scope, elem, attr, ctrl)
             {
               var keyCode =      [8,9,37,39,48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,110];
           elem.bind("keydown", function(event) {
            if($.inArray(event.which,keyCode) == -1) {
              scope.$apply(function(){
                 event.preventDefault();

                      }); 
                   }
               console.log("Emp No"+scope.empno);
                }
              }

我第一次得到Emp No undefined。

1 个答案:

答案 0 :(得分:0)

为了捕获指令中的完整字符串,您需要处理不同的事件,我建议使用keypress(jQuery API),以便在指令中获得输入框的完整值