Ng-model绑定触摸事件输入的值失败
ng-model fails to bind the values entered with a touch event
我使用的是JQuery + Bootstrap键盘,它专门为我的Angular应用中的触摸输入配置(如果我使用鼠标点击键,键盘将关闭,而不输入任何内容)。它被写为在点击事件时关闭。
Mobile-first-Virtual-Keyboard-Plugin-With-jQuery-Bootstrap
我的问题是,当我输入一些东西到一个输入框,这是绑定到我的控制器使用ng-model像下面的代码,
<input autocomplete="false" class="textInputSeeThrough keyboard"
ng-model="patientNIC" type="text" id="nic"
name="patientNICTxtbox" autofocus
placeholder="--- ENTER NIC NUMBER ---">
没有被正确绑定。但是,如果我使用纯javascript遍历DOM并在我的控制器中获取元素值,而不是使用$scope来获取值,我可以正确地获得值。
var val1 = $scope.patientNIC; // this doesn't work
var val2 = document.getElementById("nic"); // this works
alert(val1);
alert(val2.value);
所以很明显键盘没有问题。angular js在处理触摸事件时有什么已知的问题吗?我找不到。有人能解释一下为什么会这样吗?先谢谢你。
简单的回答是:Angular
不知道输入的变化。每个更改必须封装在$apply
或$timeout
中。
看这个使用jQuery设置输入值后更新Angular模型
不用担心,使用jquery/Javascript设置输入元素的值。请将以下脚本粘贴到你的html块/js (jquery)
!function (n, t) { "use strict"; var r = n.fn.val; n.fn.val = function (n) { if (!arguments.length) return r.call(this); var e = r.call(this, n); return t.element(this[0]).triggerHandler("input"), e } }(window.jQuery, window.angular);
即使我们不需要重新赋值给ng对象/单独触发输入。
干杯!
相关文章:
- Html<输入模式>使用JavaScript处理-超过时失败
- $q.all当输入数组中的一项不是promise时,Typescript检查器失败
- 将两个隐藏输入与简单的 JavaScript 进行比较失败
- ExtJs 4 GridPanel with CellEdit:输入的数据在验证失败时丢失
- 删除带有按钮的输入表单失败
- Javascript OOP:通过输入将值传递给属性失败
- jQuery - 如果这个或这个得到失败的输入名称
- JQuery 验证输入类型文件在服务器端失败
- 如何在验证失败弹簧 MVC 时保留输入表单值
- 如果输入文件丢失,有没有办法导致 Grunt 插件失败
- 验证失败时突出显示的输入字段
- 在Firefox扩展中的输入文件元素上单击操作失败
- 通过JQuery设置输入字段值会使AngularJS上所需的验证失败
- Jquery悬停在子分区输入时失败
- Javascript RegExp在简单输入时失败
- AngularJS中将筛选器结果绑定到输入失败
- 为什么当输入包含换行符时regex会失败
- 用户使用javascript生成的输入字段,如果验证失败,我如何将他们的数据填充回输入字段
- 输入键表单提交失败,HTML5日期输入
- 通过javascript重置HTML输入字段失败