AngularJs Ng-Keypress事件工作错误
AngularJs Ng-Keypress event working wrongly?
我正在用Angularjs开发一个应用程序。我在输入类型=文本中使用ng按键事件。在文本中键入值时,我在按键功能中得到错误的值。例如,如果我第一次输入"1",我得到的是undefined
。第二次,输入任何其他值将得到第一个值
<input ng-model="NodeId_1" type="text" ng-keypress="getValue()"/>
var angularapp = angular.module('nameapp', []);
angularapp.controller('NameCtrl', function ($scope) {
$scope.getValue = function () {
alert($scope.NodeId_1);//Here first time undefined is coming and second what ever we enter first value will come
}
}
)
您将需要使用ng-keyup
代替。
ng-keypress
在按下键时发生,并且在值填充输入之前发生。这就是为什么你在第一次按键时没有得到任何值,但在随后的按键中却可以得到。
使用ng-keyup
,您的问题就解决了,因为一旦值已经填充了输入,它就会发生。
<input ng-model="NodeId_1" type="text" ng-keyup="getValue()" />
ng-keypress
按预期工作,但它不是适用于您的要求的指令。
工作活塞:http://plnkr.co/edit/OHWDZo68siDlcrXnLyzJ?p=preview
当按下一个键并按下该键时触发keypress事件通常产生一个字符值(使用input代替)。https://developer.mozilla.org/en-US/docs/Web/Events/keypress
因此,无论是输入字段值还是作用域值(apply/digest循环等)都不会反映期望的输入值。
解决方案取决于您的要求。以下是一些:
1)在输入字段上使用另一个事件:change, keyup,…
2)在监听器方法中使用$event对象:<input ng-model="NodeId_1" type="text" ng-keypress="getValue($event)"/>
$scope.getValue = function (event) {
console.log(event)
}
3)在作用域中为NodeId_1值创建一个监视器:
$scope.$watch('NodeId_1', function(newVal) {
...
});
看守功能为我工作,我附上了我的例子
$scope.$watch('itemm.montoAmodificar', function (newValue) {
$scope.fnActualizarNuevoSaldoDependencia(parseFloat(newValue));
});
html代码如下
<input ng-model="itemm.montoAmodificar" my-focus class="form-control" type="text" placeholder="Ingrese el monto" ng-keypress="fnActualizarNuevoSaldoDependencia($event);" />
相关文章:
- JavaScript表单验证-“;“错误”;不按需要工作
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- XMLHttpRequest在$.ajax工作的地方给出了CORS错误
- 角度过滤器可以工作,但将输入视为未定义并抛出错误
- JS错误导致WordPress插件无法工作
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- AWS API网关返回400错误请求,但Postman工作正常
- 开机自检无法正常工作,出现错误
- ng-bind-html 工作,但抛出错误
- Javascript - 错误“未定义不是函数”在以前工作的代码上引发
- JS脚本未按预期工作,没有错误消息
- dhtmlx多个调度器不工作错误”;调度程序未定义”;
- 索引在IE中导致错误;在其他浏览器中工作
- jsPDF addHTML方法不工作,没有错误消息
- 这个get方法似乎可以工作,但控制台中存在错误
- 替换匹配函数给出了未定义的错误,但它与替换一起工作
- servlet不工作(也有空指针错误),servlet不能't从javascript中获取值
- jqGrid-在IE中产生SCRIPT5007错误,但在localhost上工作
- JQuery停止工作,没有任何错误消息
- 403禁止错误工作灯