Javascript jQuery';未定义事件';模拟按键错误
我目前正在尝试使用jquery将下拉列表中的选择输入文本框,模拟单击以选择它,按return,等待一些处理,然后再次按return。这是一个相当肮脏的方式来获得我需要的,但这是我目前唯一能看到的方式。代码如下:Javascript jQuery';未定义事件';模拟按键错误,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我目前正在尝试使用jquery将下拉列表中的选择输入文本框,模拟单击以选择它,按return,等待一些处理,然后再次按return。这是一个相当肮脏的方式来获得我需要的,但这是我目前唯一能看到的方式。代码如下: $('#fav').change(function() { $('#contract_input').val($('#fav').val()); $('#contract_input').trigger('click'); e = jQuery.Event("keypres
$('#fav').change(function()
{
$('#contract_input').val($('#fav').val());
$('#contract_input').trigger('click');
e = jQuery.Event("keypress");
e.which = 13;
$('#contract_input').trigger(e).delay(500).trigger(e);
}
我遇到的问题是IE8在页面上给出了一个错误:
未定义“事件”
点击似乎起作用了,只是返回不起作用
有什么想法吗
非常感谢Cap再次编辑: $('合同输入').keypress(函数(e){do Stuff}); 应该改用
考虑使用
keydown
而不是keypress
,在IE中,您可以尝试设置e.keyCode
而不是e.which
e、 g
#contract\u输入
处理程序是如何绑定的?有更好的方法可以做到这一点:)它是flexbox()的一部分,允许使用google suggest风格的函数来选择合同号。下拉列表是一个附加选项,允许用户自动输入喜爱的合同编号。因为我对javascript不太感兴趣,所以我不想玩flexbox本身;e、 keyCode=13$(“#合同"输入”).trigger(e).delay(500).trigger(e)代码>,运气好吗?不,很遗憾没有。我确实觉得很奇怪,如果页面在本地运行,那么第一次按键似乎可以工作,但如果它在服务器上,它根本不工作。相同的浏览器和相同的计算机。这是完全错误的。您所做的是在输入字段中附加一个按键事件处理程序,而不是触发按键事件。您已经阅读了该问题好几次了,现在。。你说得对。。我想。
e = jQuery.Event("keydown");
e.keyCode = 13;
$('#contract_input').trigger(e).delay(500).trigger(e);