小编典典

自动完成触发任何事件吗?

html

我有一个非常简单的表格。当用户在输入字段中键入内容时,我想更新他们在页面上其他位置键入的内容。这一切都很好。我已经绑定的更新的keyupchangeclick事件。

唯一的问题是,如果您从浏览器的自动完成框中选择一个输入,则该输入不会更新。从自动完成功能中进行选择时,是否会触发任何事件(显然既不是change也不是click)。请注意,如果您从“自动完成”框中选择并
模糊 了输入字段,则将触发更新。我希望自动完成会立即触发它。

HTML:

<input name="email" /> 
<div id="whatever">&lt;whatever></div>

CSS:

div { 
    float: right; 
}

脚本:

$("input").on('keyup change click', function () { 
   var v = $(this).val(); 
    if (v) { 
     $("#whatever").text(v);   
    }  
    else { 
        $("#whatever").text('<whatever>'); 
    } 
});

阅读 292

收藏
2020-05-10

共1个答案

小编典典

我建议使用monitorEvents。它是Web检查器和Firebug中的javascript控制台提供的功能,可打印出由元素生成的所有事件。以下是使用方式的示例:

monitorEvents($("input")[0]);

在您的情况下,input当用户从自动完成下拉列表中选择一项时,Firefox和Opera都会生成一个事件。在IE7-8中change,用户更改焦点后会产生一个事件。最新的Chrome确实会产生类似事件。

2020-05-10