您的位置:首页 > Web前端 > JQuery

Angular中Jquery修改input的值之后如何更新Model

2017-04-14 11:00 507 查看
在开发
angular
程序中,有时候会用到
jquery
来修改
input
值,比如在做输入限制的时候,当复制粘贴字符到
input
框之后,需要对值进行改变再放入到
input
中。此时需要同步更新
input
上的
ng-model
。注意不要使用
scope.$apply()
,因为这个是
model
改变之后来更新
view
的。下面来看下具体方法。

function handlePaste(e) {
e.preventDefault();
var maxLength = $(this).attr('maxlength');
var clipboardData = '';
//IE
if (window.clipboardData) {
clipboardData = window.clipboardData.getData("Text");
} else {
clipboardData = e.originalEvent.clipboardData.getData("Text");
}
clipboardData = clipboardData.replace(/["\*\/\\\?<>:\|]/g, '');
if (null != maxLength && maxLength > 0) {
$(this).val(clipboardData.substr(0, parseInt(maxLength)));
} else {
$(this).val(clipboardData);
}
$(this).trigger('input'); // Use for Chrome/Firefox/Edge
$(this).trigger('change'); // Use for Chrome/Firefox/Edge + IE11
}


通过手动触发
input
change
事件来使model发生改变

$(this).trigger('input'); // Use for Chrome/Firefox/Edge
$(this).trigger('change'); // Use for Chrome/Firefox/Edge + IE11
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐