看了网上的资料也比较杂,自己也做一个整理共享一下解决方案

1.原生js的改变之后手动添加监听

1

2

3

var ttt = document.getElementById("ttt");

var eee = document.getElementById("eee");

eee.οnchange=function (){

ttt.value=eee.value;

ttt.addEventListener("input",changeValue(),false);

}

function changeValue(){

alert(ttt.value);

}

需要注意的是,ttt添加的监听的方法名一定要加(),就是在eee的change事件触发的是否给ttt赋值,并且手动触发ttt的change事件

2.添加自定义属性触发事件

1

2

3

var ttt = document.getElementById("ttt");

var eee = document.getElementById("eee");

eee.οnchange=function (){

ttt._value=eee.value;

}

Object.defineProperty(ttt,"_value",{

configurable:true,

set:function(value){

this.value = value;

changeValue();

},

get:function(){

return this.value;

}

});

function changeValue(){

alert(ttt.value);

}

这种方式不需要添加监听,是通过添加自定义属性并且在自定义属性的set方法里触发input的值改变事件

3.jquery的手动触发input改变事件

1

2

3

$("#two").on("change",function(){

~!($("#one").val())>-2 ? alert($("#one").val()) : ($("#one").on("change",function(){

alert($(this).val());

}));

});

$("#three").on("change",function(){

$("#two").val($(this).val());

$("#two").change();

});

var index = 0;

setInterval(function(){

index ++;

$("#five").val(index);

if (index == 10) {

$("#one").val($("#three").val());

$("#one").change();

}

},1000);

这种方式是在值改变的时候手动触发change事件,这里的代码是select框的值改变了,并且当#one这个input框有值了才触发,就是满足两个事件才执行

4.最终解决办法(推荐一篇文章)

Object.defineProperty(document.getElementById("id"),"value",{

set:(v)=>{

document.getElementById("id").setAttribute("value",v);

/**

*触发chang事件的代码

*/

});

原来的那几种方法,局限性太多,通过重写原形属性的setter方法,实现动态change事件的触发,目前为止,我觉得最好的解决办法。

5.超级最终解决办法

我还是太年轻了,第四种方法有一个很大的弊端,就是手动更改input框数据的时候是不会触发setter方法的,只有js调用了赋值操作才会进,所以,又有了下一个方法

(function($) {

const o = $.fn.val;

$.fn.val = function() {

const r = o.apply(this, arguments);

if (this.is("#id") && arguments.length > 0) {

this.trigger("change");

}

return r;

}

})(jQuery);

这个方法,依赖于jQuery,并且js中动态赋值都只能用val,这个方法才生效。

主要的逻辑就是重写jquery的val方法,在方法体中触发input的change事件。

把这个方法拷贝到你的js的文件顶端就可以生效了

java textvaluechanged 全选删除不触发_js动态改变input的值不触发input的change事件的解决办法...相关推荐

  1. java textvaluechanged 全选删除不触发_具有TextChanged事件的AutoCompleteBox未正确选择

    嗨,我正在使用这样的 AutoCompleteBox FilterMode="None" ItemsSource="{Binding Customers}" S ...

  2. FileSystemWatcher触发多次Change事件的解决办法 .

    最近要用到FileSystemWatcher来监控某个目录中的文件是否发生改变,如果改变就执行相应的操作.但在开发过程中,发现FileSystemWatcher在文件创建或修改后,会触发多个Creat ...

  3. FileSystemWatcher触发多次Change事件的解决办法

    最近要用到FileSystemWatcher来监控某个目录中的文件是否发生改变,如果改变就执行相应的操作.但在开发过程中,发现FileSystemWatcher在文件创建或修改后,会触发多个Creat ...

  4. php jquery 全选删除,jQuery+php简单实现全选删除的方法

    jQuery+php简单实现全选删除的方法 发布于 2017-08-06 10:13:21 | 66 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertex ...

  5. Mac OS开发—Xcode给Mac应用添加编辑快捷键(剪切 复制 粘贴 全选 删除 撤销 重做)功能

    前言 笔者做Windows开发的,无奈公司有Mac OS的项目需要维护,之前没有编辑菜单的功能,需要笔者加上这个功能,笔者只能硬着头皮上.还好会c++,Mac应用里面一般都会用object-c 也可以 ...

  6. php全选删除,php+ajax简单实现全选删除的方法

    本文实例讲述了php+ajax简单实现全选删除的方法.分享给大家供大家参考,具体如下: 删除 ↑全选checkbox ↑为删除项,同一命名class为ckb,方便操作,同时将id值巧妙的放入input ...

  7. php全选删除文件,一个简单的PHP全选删除数据

    各位帮忙看看,还要修改什么!! <--------表单页面(index.php)---------> /* 链接数据库和网站配置信息 */ ?> 全选删除 function All( ...

  8. 网易企业邮箱删除的的邮件服务器,网易企业邮箱进行全选删除移动操作步骤说明...

    使用问题 您的位置: 首页> 使用问题 网易企业邮箱进行全选删除移动操作步骤说明 发布时间:2019-04-15 使用万网企业邮箱webmail时,如对现有邮件需要删除,可参考以下不同删除邮件方 ...

  9. vi编辑器全选删除命令ggVGd 全选复制命令(转载)

    博文转载自互联网,有删改,如有侵权请及时联系删除 vi编辑器全选删除命令为 ggVGd ggVG 稍微解释一下上面的命令 gg 让光标移到首行,在vim才有效,vi中无效 V   是进入Visual( ...

最新文章

  1. 外贸网站制作 网页的宽度多少为合适
  2. html百度蜘蛛跳转代码,php搜索引擎劫持,百度蜘蛛劫持,搜索引擎蜘蛛劫持原理及代码分享...
  3. 网络协议基础:ARP简析
  4. 照片识别出错_AI跨年龄人脸识别技术在跨年龄寻亲的应用简析
  5. 业务用例模型涉及的主要概念
  6. L3-014 周游世界 (30分)
  7. c8网络语言意思,求一些比较经典的网络用语
  8. html 弹窗实现拖拽,原生js实现自由拖拽弹窗代码demo
  9. 百度K站的神奇简单有效的方法
  10. PHP基础+php高级+前端+项目实战视频教程免费分享
  11. 高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENOB、分辨率、RMS、SFDR、THD、SINAD、dBFS、TWO-TONE IMD
  12. 上海居住证及居住证积分常见问题(70个常见问题)
  13. unity游戏开发(1)安装开发环境
  14. MySQL 幻读和不可重复读的区别
  15. 工作中的自我反思[实时更新]
  16. 用python程序计算,投资1W,一年后变为10W,每个月收益率需要多少
  17. Python 实现随机生成双色球号码
  18. Tigervnc-server
  19. shader实现雪地中的脚印
  20. 矽杰微 X8P2202 单片机

热门文章

  1. setyear java_如何在Java中创建不可变类
  2. python tkinter treeview 高亮_满满的成就感~如何用python让你的想法拥有可操作性?(一)...
  3. matlab第六章课后答案,matlab作业第6章
  4. 查询blob字段_一次注解开发实战-我使用注解对微服务的跨库查询做了封装
  5. python计算凸包并绘制凸包曲线
  6. php数据全部输出,我的php 分页输出数据 全部输出没有按我设定的输出 也就是本来该一页输出5条的 现在全部输出完了...
  7. react 16 对外暴露function_【第 25 期】React 架构的演变 从同步到异步(一)
  8. 动态排名系统(整体二分)
  9. Spring:延迟初始化
  10. 快乐学习 Ionic Framework+PhoneGap 手册1-5 {IO开关}