input怎么触发onchange(chrome)

github_36695964 2016-11-13 07:49:46
通过js dom修改input的内容不会触发onchange事件
请问如何通过js修改input内容后 在去触发onchange呢?在chrome下

是这样的, 我在一个网站上通过js设置一个input的值 然后点submit提交,但是提交的内容还是input之前的值,并不是我通过js修改后的值,通过网上查阅资料说input只有是键盘或者鼠标操作才能出发onchange。所以就有了上面的问题,请教各位大大
...全文
427 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2016-11-14
  • 打赏
  • 举报
回复
引用 2 楼 github_36695964 的回复:
[quote=引用 1 楼 showbo 的回复:]
js执行完值设置后,再执行onchange事件就行了,如果没有将事件提出出来作为单独的函数

标准浏览器下oninput如何响应javascript动态设置值

我是这样做的 还是没有触发onchange 请问什么原因呢
		obj.value='t11111';

var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
obj.dispatchEvent(evt);
[/quote]
标准浏览器用这个试试


var oEvt = document.createEvent('HTMLEvents');
oEvt.initMouseEvent('change', true, true, window, 1, 1, 1, 1, 1, false, false, false, false, 0, obj);
obj.dispatchEvent(oEvt);

IE/Firefox/W3C浏览器代码触发事件
兰青 2016-11-13
  • 打赏
  • 举报
回复
onchange必须是监听事件的元素失去焦点的时候才会执行;如果你不失去焦点直接提交的话是不会执行的。使用onkeydown或者onkeyup分别是按下键盘和松开键盘时就会执行。
当作看不见 2016-11-13
  • 打赏
  • 举报
回复
用onkeydown代替onchange吧,就换个事件名而已。onchange要失去焦点才触发检测(检测值改变了,才会触发onchange事件)
github_36695964 2016-11-13
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
js执行完值设置后,再执行onchange事件就行了,如果没有将事件提出出来作为单独的函数 标准浏览器下oninput如何响应javascript动态设置值
我是这样做的 还是没有触发onchange 请问什么原因呢
		obj.value='t11111';

		var evt = document.createEvent("HTMLEvents");
		evt.initEvent("change", false, true);
		obj.dispatchEvent(evt);
Go 旅城通票 2016-11-13
  • 打赏
  • 举报
回复
js执行完值设置后,再执行onchange事件就行了,如果没有将事件提出出来作为单独的函数 标准浏览器下oninput如何响应javascript动态设置值

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧