joh*_*eur 6 mouse autocomplete paste
在谷歌的自动完成API似乎并没有粘贴内容与鼠标的文本输入被激活.如果完全涉及键盘,它可以正常工作,但不能只用鼠标.
但是,我注意到,在将内容粘贴到文本输入后,它几乎可以从任何按键激活(测试的右箭头键,结束键,空格).
你可以在他们的自动完成演示网站上进行重新调整.
这是一个错误吗?还是按照设计?如果它是按设计的,如何应用变通方法?到目前为止,我已将此作为一种解决方法,但似乎没有模拟按键事件可行.
$('.txtLocation').bind("paste", function (e)
{
$('.txtLocation').focus();
var e = jQuery.Event("keydown");
e.keyCode = 39; //39=Arrow Right
$('.txtLocation').trigger(e);
});
Run Code Online (Sandbox Code Playgroud)
这似乎不仅会影响上下文菜单粘贴,还会影响浏览器菜单栏中的"编辑"|"粘贴"以及iOS粘贴功能.我已经向谷歌公开了一个错误.您可能希望"明星"该错误报告以捕获更新.
我找到了一个解决方法,虽然有点黑客,似乎解决了这个问题.如果存储粘贴的值,请将焦点切换到其他字段,在"自动填充"字段中设置值,最后重点关注"自动填充"字段,事情或多或少会按预期工作.此外,您必须在setTimeout()回调中执行此操作- 延迟时间似乎根本不重要,但如果您只是内联执行此操作,则无法看到预期结果.
这是我上面描述的代码示例:
$("#address_field").on("paste", googleMapsAutocompletePasteBugFix);
googleMapsAutocompletePasteBugFix = function() {
return setTimeout(function() {
var field, val;
field = $("#address_field");
val = field.val();
$("#price").focus();
field.val(val);
return field.focus();
}, 1);
};
Run Code Online (Sandbox Code Playgroud)
最后一个focus()是可选的,但是如果你只是自动跳到下一个字段,那么UI就不那么令人惊讶了.