javascript - 模拟在输入文本上按下 [enter] 键

标签 javascript html input keypress

我的代码完美地改变了页面加载时自动输入的值,但两者之间存在延迟。

但还有另一个问题,当我尝试模拟按下输入上的 [enter] 键时,它不起作用,而是提交表单并重新加载我的页面。

如何在不提交表单且不重新加载页面的情况下模拟在输入中按下 [enter] 键?我使用纯 javascript 没有 jQuery

这是我的脚本:

var form  	= document.querySelectorAll("._k3t69");
var input 	= document.querySelectorAll("._7uiwk._qy55y");
var message = "Replacement..." ; 
var maxMsg  = 3 ;
var delay 	= 2.5 * 1000 ; // 2.5 Seconds

var j = 0, k = 0;
function setValue(){
  if( j == maxMsg || j == input.length) {
  	clearInterval(looping)
  } else {
		input[j++].value = message ;
    //And then simulate pressing enter key ON THE INPUT, not sumbit the form
    form[k++].submit();
  }
}

var looping = setInterval(setValue, delay);
<form class="_k3t69">
    <input type="text" class="_7uiwk _qy55y">
</form>

<form class="_k3t69">
    <input type="text" class="_7uiwk _qy55y">
</form>

<form class="_k3t69">
    <input type="text" class="_7uiwk _qy55y">
</form>

Here's the fiddle

最佳答案

默认提交表单会提交表单并重新加载页面。

如果要触发按键事件:

var input = document.querySelector("._7uiwk._qy55y");
var ev = document.createEvent('Event');
ev.initEvent('keypress');
ev.which = ev.keyCode = 13;
input.dispatchEvent(ev);

如果你想检查是否输入了按下的键:

var input = document.querySelector("._7uiwk._qy55y");
input.addEventListener('keypress', function(ev){
  if(ev.keyCode === 13 || ev.which === 13){
    // enter was pressed
  }
});

如果您想阻止在输入/提交时提交表单:

var form = document.querySelector("._k3t69");

form.addEventListener('submit', function(ev){
    ev.preventDefault();
    // you can do something alternative here e.g. send AJAX request to server

    return false;
});

JSFIDDLE

关于javascript - 模拟在输入文本上按下 [enter] 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41137575/

相关文章:

html - 使用 bootstrap 3 从左侧到顶部的导航栏

javascript - 如何将 HTML 元素选择更改为子菜单 UI?

javascript - 将变量传递给外部 Javascript

javascript - 以编程方式触发文本光标,就像用户实际单击输入标签一样

javascript - Liferay:允许远程访问 JSON Web 服务

javascript - Js 动画宽度 w/o jquery

html - 将垫子图标放在带有 flex 的 div 的中心?

php - POST 变量数组和 filter_input

php - Jquery 错误??两个数相乘后的长十进制数

javascript - 通过函数生成url后无法获取JSON