第一个keyup事件将更改一个输入的值,但是在未调用时更改一个输入gn()
。
这是我的代码
function fn() {
document.getElementById("one").value = "abc"
}
function gn() {
document.getElementById("two").value = "def"
}

<input type="number" onkeyup="fn()">
<input type="number" id="one" onchange="gn()">
<input type="number" id="two">
&#13;
答案 0 :(得分:2)
您尝试将数字输入的值设置为字符串,甚至不能将其设置为数字。
用以下功能替换您的功能:
document.getElementById("one").value = "123";
或
document.getElementById("one").value = 123;
这将有效。
如果要将输入设置为abc,则应将输入类型从数字切换为文本
<input type="text" id="one" onchange="gn()">
修改强> 我将我提议的将输入更改为文本的解决方案复制到HTML文件中。以下是该文件的全部内容:
1 <html>
2
3 <input type="text" onkeyup="fn()">
4 <input type="text" id="one" onchange="gn()">
5 <input type="text" id="two">
6
7 <script>
8 function fn(){ document.getElementById("one").value = "abc"}
9 function gn(){ document.getElementById("two").value = "def"}
10 </script>
11 </html>
这样,第一个框中的keyup事件会将第二个输入更改为abc。更改值(如输入值并单击输出)第二个框将使第3个框的值为def。
答案 1 :(得分:1)
第一项作业无效,因为您尝试将“数字”输入设置为非数字值。
第二个赋值不起作用,因为当脚本修改字段的值时,不会触发onchange事件;你必须手动创建和发送事件:
function fn() {
// This will work because the #one input is now type="text"
document.getElementById("one").value = "abc";
// now create and dispatch a change event on the field you modified:
var evt = new Event('change');
document.getElementById("one").dispatchEvent(evt)
// (Or, of course, just call gn() directly here.)
}
function gn() {
document.getElementById("two").value = "def"
}
<input type="text" onkeyup="fn()">
<input type="text" id="one" onchange="gn()">
<input type="text" id="two">