2013-07-16 71 views
8

我有工作如下:如何触发jQuery的输入事件

$('textarea').keypress(function(e) { 
    if (e.keyCode == '13') { 
     alert('code'); 
    } 
}); 

但我要触发同样的事情在页面加载时,我尝试以下,但它不工作:

var e = jQuery.Event("keypress"); 
e.which = 13; // Enter 
$('textarea').trigger(e); 

注:我想要第一次剪下的代码,我不想删除它。

+0

你应该检查你的处理器,而不是''e.keyCode'一个e.which'解决方案。 – jbabey

+0

jbabey你似乎是对的。你可以发布是作为答案,所以我可以接受? – dzumla011

回答

11

使用 “的” 而不是密钥号码。在这两种情况下

$('textarea').keypress(function (e) { 
    if (e.which == '13') { 
     alert('code'); 
    } 
}); 
+2

(e.keyCode || e.which)=== 13 – karaxuna

+0

@karaxuna修改了代码。 –

+0

+1我认为你的回答是他所需要的:) – karaxuna

0

替代解决方案:

var textarea = $('textarea').keypress(OnTextareaKeypress); 
$(function(){ 
    OnTextareaKeypress.call(textarea[0], { e: { which: 13 } }); 
}); 

function OnTextareaKeypress(e) { 
    if (e.which == '13') { 
     alert('code'); 
    } 
} 
6

这里“哪”的作品是你的问题http://jsfiddle.net/dima_k/zPv2a/

$('button').click(function(){ 
    debugger 
    var e = $.Event("keypress"); 
    e.keyCode = 13; // # Some key code value 
    $('#textbox').trigger(e); 
}); 

$('#textbox').keypress(function(e) 
{ 
    if (e.keyCode == '13') { 
     alert('code'); 
    } 
}); 
+1

是不是这里的答案的复制/粘贴? http://stackoverflow.com/questions/832059/definitive-way-to-trigger-keypress-events-with-jquery – Omar

+2

看看问题。我相信,他已经找到了你所附的解决方案,但这对他并不起作用。所以我附上一个jsFiddle工作解决方案,以表明它的工作原理。 –