javascript - 按下 ENTER 键时更改表单标签内的输入值

标签 javascript html forms input

考虑以下 HTML 代码:

<form>
    <div>
        <input type ="text" id="myInput"/>
    </div>
</form>

我希望当用户输入一些文本并按下 ENTER 键时,输入值将变为单词“Hello”。

为此,我添加了以下 Java 脚本代码:

<script>
  var input = document.getElementById("myInput");
  input.addEventListener("keyup", function(event) {
    event.preventDefault();
    if (event.keyCode === 13) {
      input.value ="Hello";
    }
});
</script>

不幸的是,这不起作用,因为当我写一段文字并按下 ENTER 键时,文字消失了(而不是向世界显示“你好”)。

在深入研究这个问题后,我发现如果我从 HTML 代码中删除“form”标签,那么它就可以正常工作。

我有两个问题:

1) 为什么会这样?

2) 如何在不移除“form”标签的情况下解决这个问题?

任何帮助将不胜感激!!

最佳答案

  1. 发生这种情况是因为“Enter”尝试提交表单。

  2. 将您的代码迁移到 onSubmit 事件处理程序可以在不删除表单标记的情况下解决问题。

我附上了片段。如果这是您的期望,请告诉我。

<form onSubmit="changeToHello(event)">
    <div>
        <input type ="text" id="myInput"/>
    </div>
</form>
<script>
function changeToHello(event) {
  event.preventDefault();
  var input = document.getElementById("myInput");
  input.value ="Hello";
}
</script>

关于javascript - 按下 ENTER 键时更改表单标签内的输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54203535/

相关文章:

javascript - 在 JavaScript 中解析指数值并将其转换为小数

javascript - 更新由 : RCTView TypeError: expected dynamic type 'accessibilityLabel' , 管理但类型为 `string' 的 View 的属性 `object' 时出错

javascript - 寻找 JS/JQuery 完全模式覆盖

html - 链接在表中不起作用

jquery - 文本幻灯片跳跃淡入淡出

javascript - 测试类无法读取consul配置

javascript - 如何保存然后加载 Three.js 场景

javascript - 使用 document.innerHTML 在 div 标签内动态生成表单

javascript - Jquery 复选框分组 - 当至少单击一个子复选框时取消选中父级,当选中所有子复选框时选中父级

php - 为什么要使用隐藏字段来检测表单提交?