【发布时间】:2021-08-12 07:53:41
【问题描述】:
我正在寻找一种方法,将来自一个本地日期输入元素的keyupKeyboardEvent 重新调度到另一个实时(类似于同时写入两个日期输入)。
我用文本输入尝试了下面的代码,效果很好。
但是对日期输入使用相同的逻辑并不能完成这项工作:尽管接收到已调度的事件,但在第二个日期输入上没有写入任何内容。
这是我的代码: index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="main.js" defer></script>
</head>
<body>
<input id="startDate" type="date" />
<input id="endDate" type="date" />
<input id="text1" type="text" />
<input id="text2" type="text" />
</body>
</html>
main.js
let startDate = document.getElementById('startDate'),
endDate = document.getElementById('endDate'),
text1 = document.getElementById('text1'),
text2 = document.getElementById('text2')
;
let endDateBinded = this.dispatchElementEvnt.bind(null,[endDate]),
text2Binded = this.dispatchElementEvnt.bind(null,[text2]);
startDate.addEventListener('keyup', endDateBinded);
endDate.addEventListener('keyup',selfUpdate);
text1.addEventListener('keyup', text2Binded);
text2.addEventListener('keyup',selfUpdate);
function dispatchElementEvnt(secondElement,e){
let event = new KeyboardEvent(e.type,e);
secondElement[0].dispatchEvent(event);
}
function selfUpdate(e) {
this.value += e.key;
}
【问题讨论】:
标签: javascript angularjs