javascript - 如何模拟文本字段(或其他输入字段)的按键并让浏览器执行该按键的默认操作

标签 javascript html keypress emulation

我想在用户单击按钮时模拟按键。我已经尝试过 Stackoverflow 上的一些相关问题,但似乎没有任何效果。在我的代码中,我希望当用户单击按钮 s 时出现 s 。 到目前为止我已经:

<!DOCTYPE HTML>
<html>
<head>

<script>
function genkey()
{
	var event = document.createEvent('Event');
	event.initEvent('keypress', true, true);
	event.keyCode = 115;
	document.dispatchEvent(event);
}

function clicked()
{
	document.getElementById('mytxt').focus();
	genkey();

}

function myattachevent(obj, eventnaam, func, useCapture)
{
	try
	{
		if (obj.attachEvent)
			obj.attachEvent('on' + eventnaam, func);
		else
			if (obj.addEventListener)
				obj.addEventListener(eventnaam, func, useCapture);
			else
				alert('both attachEvent and addEventListener do not exist!!');
	}
	catch (err)
	{
		alert('exception in myattacheevent');
	}
}

function keydownfunc(event)
{
	alert('keycode = ' + event.keyCode);
}

function initpage()
{
	myattachevent(document, 'keypress', function(event){keydownfunc(event)}, false);
}

</script>
</head>
<body onLoad="initpage();">
<INPUT type="button"  VALUE='s'  onClick="clicked() ;return false;">
<br>
<input type="text" id="mytxt" value='hi' size=10 maxlength=10>
<br>
</body>
</html>

最佳答案

如果您只想在按下按钮时将字符“s”显示在输入框中,则可以将字符附加到输入框

 function clicked(){
     document.getElementById('mytxt').value += 's';
    }
  <INPUT type="button"  VALUE='s'  onClick="clicked();return false;">
    <br>
    <input type="text" id="mytxt" value='hi' size=10 maxlength=10>
    <br>

关于javascript - 如何模拟文本字段(或其他输入字段)的按键并让浏览器执行该按键的默认操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38697740/

相关文章:

javascript - 根据同一列表中另一列的条目隐藏 SP 列表中的列

javascript - 按钮在 React 中不起作用

jquery - Bootstrap 模态背景仅显示 "class=fade",而不是类 ="show"

javascript - 尝试使用 onclick 调用函数时未定义值

javascript - jquery效果问题: How to detect if mouseover is triggered by scroll?

javascript - 一个简单的 e.altKey 测试

javascript - TCP 套接字、JSON 和安全性

javascript - 仅删除某些其他匹配行之间的空白行

html - 实现 100% div 高度的更好方法

c# - react 性扩展 : matching complex key press sequence