如何在Chrome自动完成输入时获得输入值

我有一个简单的输入,Google Chrome浏览器自动完成功能已启用。

当我接受建议与→,然后立即点击一个按钮(没有击中Enter或Tab键),然后访问value的DOM元素的只返回我进入手工字符,而不是场的全部内容。 jQuery也会发生同样的情况,即调用$(input).val()

这是一个演示此行为的最小示例。 我在这里使用了type="email"输入,而不是type="text"以确保浏览器启用自动完成功能,但其行为完全相同。

我如何使用自动完成的插图

当您将建议添加到您的输入(高亮显示)后单击该字段时,会发生同样的情况,而不是使用→。

类似的问题发生在Safari 7上,虽然检索值没有问题,但在我描述的第二个场景(添加建议后单击字段)中只发出没有事件。

除了禁用自动完成功能(我曾这样做)之外,是否有人想过如何规避此问题?


更新:我用Chromium开了一个bug。 到现在为止没有回应。


事实证明,这是Chrome中的一个错误,从版本43.0.2357.65开始得到纠正(尽管如此,它仍然存在于43.0.2357.45中)。


2017年6月更新:此问题已在Chrome 43中修复,现在已有两年不复存在。


尝试将输入字段放入表单中。 这样输入字段不会自动填充。 并迫使你点击其中一个建议。

<form>
    <input id="email" type="email"/>
</form>
<button>OK</button>
<span></span>

在点击该按钮之前,在获取该值之前,请着重关注该字段:

document.getElementById("textbox").focus();
var texthere = document.getElementById("textbox").value;

试试看,我相信当你点击按钮时它会给你全部的价值。

链接地址: http://www.djcxy.com/p/79889.html

上一篇: How to get value of input when autocompleted by Chrome

下一篇: Get stack trace of a crash on Windows without installing Visual Studio? (C++)