var $form = $(".user");
var $email = $("input[name='email']",$form);
// start polling when the field is focused
$email.focus(function()
{
var $inp = $(this);
$inp.data("val_old",$inp.val());
$inp.data("val_poll",setInterval(function()
{
if ($inp.data("val_old") != $inp.val())
{
checkEmail(); // value has changed, take some action
$inp.data("val_old",$inp.val());
}
},100));
});
// stop polling on blur
$email.blur(function()
{
clearInterval($(this).data("val_poll"));
$(this).removeData("val_old val_poll");
});
我曾经有一个onkeypress事件,但是这个轮询器不再需要了 .
不是很漂亮,但很有效 . 适用于任何浏览器 .
0
<script type="text/javascript">
function fillReview() {
var email = document.getElementById("email");
var review = document.getElementById("email-review");
review.innerHTML = email.value;
}
</script>
<input type="text" id="email" onkeyup="fillReview();" />
<span id="email-review"></span>
2 回答
我刚遇到同样的问题 . 单击建议的自动填充值时,浏览器(在本例中为Chrome)根本不会触发任何事件 . 所以我使用setInterval每100ms左右轮询我的输入字段以查看它们的值是否已更改,如果是,则调用相应的函数 .
这是我的代码(使用jQuery):
我曾经有一个onkeypress事件,但是这个轮询器不再需要了 .
不是很漂亮,但很有效 . 适用于任何浏览器 .