javascript - VueJS值更改不调用@change
问题描述
使用 VueJS,我有两个单独的组件。
模态和形式。
在模态表单中,用户输入一个得到确认的 PIN,然后将该值设置为表单中的输入标签,以基本上保存该值。
在模态组件中,我将值设置为:
document.getElementById('pin').value = this.pin_input;
在表单组件中,输入标签是这样的:
<input type="hidden" @change="submit()" id="pin">
在控制台中,此输入标记 get 的值设置正确,但@change="submit()"
在值更改时不会调用。
在没有被调用的表单组件中提交方法代码:
methods : {
submit : function(){
console.log("SUBMIT HERE");
}
}
为什么我的输入标签@change
没有被调用?
解决方案
在 DOM 元素上设置值不会触发输入/更改事件。这就是为什么你在 vue 中设置的事件监听器没有被调用。
您可以手动触发这些事件,然后它们将被 vue 拾取。
var element = document.getElementById('pin');
element.value = this.pin_input;
// Works in most modern browsers.
var event = new Event('change');
element.dispatchEvent(event);
推荐阅读
- javascript - 尝试返回所有匹配的值,而不仅仅是工作表结果中的第一个值
- kubernetes - 无法使用 Recreate 策略定义 Kubernetes StateFul-Set
- java - 全局对象(基于“扩展应用程序”)在一夜之间蒸发……为什么?
- excel - 在VBA中获取UIAutomationElement的可点击鼠标点
- node.js - TYPEORM 过滤复杂 JSON 的数据
- java - 带有 json Body 和多部分文件数组的 PUT 请求
- angular - Angular 自定义库 npm install 给出了关键依赖:依赖的请求是一个表达式
- sql - 基于现有表字段创建 SQL 语句
- python - zeep 客户端异常。zeep.transport.session.cookies 不传播
- powershell - 是否可以检查 .cmd 运行的 powershell 脚本?