Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery触发器按enter键不工作_Javascript_Jquery - Fatal编程技术网

Javascript jQuery触发器按enter键不工作

Javascript jQuery触发器按enter键不工作,javascript,jquery,Javascript,Jquery,这是我的剧本: $('.target input').val('my value'); $('.target input').trigger(jQuery.Event('keypress', { keycode: 13 })); 第一行工作正常,值设置正确,然后我需要在输入元素中按enter键,但第二行不工作。我的意思是事件没有被触发: $('.target input').keyup(function(e){ if(e.keyCode == 13) {

这是我的剧本:

$('.target input').val('my value');
$('.target input').trigger(jQuery.Event('keypress', { keycode: 13 }));
第一行工作正常,值设置正确,然后我需要在输入元素中按enter键,但第二行不工作。我的意思是事件没有被触发:

$('.target input').keyup(function(e){
      if(e.keyCode == 13)
      {
            alert($(this).val());
      }
 });

当我手动按下enter键时,事件会触发,但使用javascript时,事件不会触发。问题出在哪里?

您需要触发
keyup
事件才能启动keyup事件处理程序。尽管属性
keycode
应该更改为,因为对象属性是区分大小写的Javascript

$('.target input').trigger(jQuery.Event('keyup', { keyCode: 13 }));
$('.target input').keyup(函数(e){
如果(e.keyCode==13){
警报($(this.val());
}
});
$('.target input').val('my value');
$('.target input').trigger(jQuery.Event('keyup'){
密码:13
}));

这应该可以帮你完成工作

  var e = jQuery.Event("keypress");
    e.which = 13; //choose the one you want
    e.keyCode = 13;
    $("#theInputToTest").trigger(e);

基本上,您需要触发
keyup
事件,就像我在小提琴中所做的那样

HTML

<input type=text />

你不工作是什么意思?@PranavCBalan我更新了问题当你按enter键时,你想让什么发生?提交表格?现在,您触发的事件只有在配置了单独的侦听器时才会触发。如果您试图提交表单,只需$('formselector')。submit()我认为您是在触发事件后绑定事件处理程序。。。你能在stacksnippet中重现这个问题吗?或者这不是问题所在,@Saeid:你使用的是哪个版本?如果你能解释一下,问题出了什么问题,解决方案是什么,那就好了。
<input type=text />
$(":input").keyup(function(e){
  if(e.which==13){
    alert("Fired");
  }
});

$(":input").val("TEST");
$(":input").trigger($.Event("keyup",{which:13}));