我有一个非常简单的表格。当用户在输入字段中键入内容时,我想更新他们在页面其他位置键入的内容。这一切都很好。我已将更新绑定到keyup
, change
and click
events.
唯一的问题是,如果您从浏览器的自动完成框中选择输入,它不会更新。当您从自动完成中选择时是否会触发任何事件(显然两者都不是)change
nor click
)。请注意,如果您从自动完成框中选择,blur输入字段,将触发更新。我希望它在自动完成后立即触发。
See: http://jsfiddle.net/pYKKp/(希望您过去已经使用名为“电子邮件”的输入填写了很多表格)。
HTML:
<input name="email" />
<div id="whatever"><whatever></div>
CSS:
div {
float: right;
}
Script:
$("input").on('keyup change click', function () {
var v = $(this).val();
if (v) {
$("#whatever").text(v);
}
else {
$("#whatever").text('<whatever>');
}
});
我推荐使用monitorEvents
。这是 javascript 控制台提供的功能网络检查员 and firebug打印出元素生成的所有事件。以下是如何使用它的示例:
monitorEvents($("input")[0]);
在您的情况下,Firefox 和 Opera 都会生成一个input当用户从自动完成下拉列表中选择一个项目时发生的事件。在IE7-8中change事件在用户改变焦点后产生。最新的 Chrome 确实会生成类似的事件。
详细的浏览器兼容性图表可以在这里找到:
https://developer.mozilla.org/en-US/docs/Web/Events/input
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)