如何通过IE的JavaScript输入框
试图找出如何在IE8和IE9的输入框中键入(通过事件而不是设置值)。我看了网上的一些例子,但没有一个能起作用。(我不想依赖其他库的JQuery) 以下是我到目前为止的情况:如何通过IE的JavaScript输入框,javascript,javascript-events,Javascript,Javascript Events,试图找出如何在IE8和IE9的输入框中键入(通过事件而不是设置值)。我看了网上的一些例子,但没有一个能起作用。(我不想依赖其他库的JQuery) 以下是我到目前为止的情况: <form> <input type="text" id="txtfld" /> <input type="button" onclick="typeKey()" /> </form> <script> function typeKey(){
<form>
<input type="text" id="txtfld" />
<input type="button" onclick="typeKey()" />
</form>
<script>
function typeKey(){
var txtField = document.getElementById('txtfld');
var evt= document.createEventObject();
evt.keyCode=68;
txtField.fireEvent('onkeypress', evt);
}
</script>
函数类型键(){
var txtField=document.getElementById('txtfld');
var evt=document.createEventObject();
evt.keyCode=68;
txtField.firevent('onkeypress',evt);
}
它不工作,也不会给出错误。尝试此功能,
激发(document.getElementById('txtfld'),'keypress',68)
:
祝你好运:)你为什么要这样称呼这个活动?你能不能不说document.getElementById('txtField')。value=U;runEvent()您需要启动
keypress
,而不是onkeypress
@theedam这只是我的一个要求。这应该是可能的,我想学习如何让它工作。@FlorianMargaine“keypress”在IE上不起作用。您需要onkeypress。代码缺少“document.createEventObject”案例中evt的定义。即使将其定义为:var evt=document.createEventObject;它仍然不起作用。如果你是对的,我忘记调用createEventObject并传递evt。现在看代码,我在IE上试过这个例子,效果很好。你在试最后一个例子吗?当你按下go按钮时,你看到了什么?我能看看你的代码吗?你是如何实现这个功能的?实际上我正在工作。。我只是希望文本框也会选择值,但事实并非如此。
function fire(el,evttype,code) {
if (document.createEvent) {
var evt = document.createEvent('HTMLEvents');
evt.initEvent( evttype, false, false);
evt.charCode= evt.keyCode = code;
el.dispatchEvent(evt);
} else if (document.createEventObject) {
var evt = document.createEventObject();
evt.charCode= evt.keyCode = code;
el.fireEvent('on' + evttype, evt);
}
}