Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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:.on(';输入';)在另一个函数更改输入值时不触发_Javascript_Jquery_Input - Fatal编程技术网

Javascript Jquery:.on(';输入';)在另一个函数更改输入值时不触发

Javascript Jquery:.on(';输入';)在另一个函数更改输入值时不触发,javascript,jquery,input,Javascript,Jquery,Input,代码如下: $("input[type='text']").on('input', function() { ...stuff here... }); //first function $('input[type="text"]').click(function() { //second function $('#keyboard').show(); $('#keyboard .letter').click(function() { var currentValue = $

代码如下:

$("input[type='text']").on('input', function() { ...stuff here... });  //first function

$('input[type="text"]').click(function() {  //second function
  $('#keyboard').show();
  $('#keyboard .letter').click(function() {
    var currentValue = $('input[type="text"]').val();
    alert(currentValue);
    $('input[type="text"]').val( currentValue + $(this).text() );
  });
});
简短的版本是,当我输入此文本输入时,顶部函数将启动。在第二个函数中,我将显示一个键盘,并根据用户单击更改输入值。但是,当通过第二个功能更改输入值时,第一个功能不启动。有什么想法吗?非常感谢

$("input[type='text']").trigger('input');
把它放在第二个函数中。 仅使用javascript设置文本框的值不会触发输入事件,因此您的输入事件处理程序不会触发。在此场景中,您需要手动触发该事件处理程序

注意:您不应该使用输入事件处理程序。查看此链接并查看浏览器兼容性糟糕的原因。你可能会得到更好的服务,而不是改变事件


同意。这应该调用更改事件而不是输入。我甚至不知道有一个
oninput
事件!我正在为Chrome制作打包应用程序,所以我只关心webkit
.on('input')
在那里工作。虽然我确实将其更改为
.change()
,但它不起作用。不知道为什么。感谢您的回答。使用JavaScript更改输入元素的值,例如使用
.val()
,不会触发
.change()
事件。文档:它确实触发了IE 10和11中的事件。但不是边缘。(在旧版本上不确定)。