如何在Chrome自动填充时获取输入值

时间:2014-06-13 10:35:17

标签: javascript jquery html google-chrome

我有一个简单的输入,谷歌浏览器自动完成功能开始使用。

当我接受的建议,然后立即点击按钮(没有点击 Enter Tab ),然后访问{{1 DOM元素只返回我手工输入的字符,而不是字段的全部内容。 jQuery也是如此,即调用value

以下是演示此行为的minimal example。我在这里使用$(input).val()输入而不是type="email"来确保浏览器启用自动完成功能,但它的行为完全相同。

illustration of how I use autocompletion

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

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

除了禁用自动完成功能(我做过)之外,是否有人知道如何规避这一点?


更新:我已打开bug with Chromium。直到现在都没有回应。

3 个答案:

答案 0 :(得分:3)

原来是Chrome中的bug,自版本43.0.2357.65开始更正(但仍然存在于43.0.2357.45中)。

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

答案 1 :(得分:2)

尝试将输入字段放在表单中。 这样输入字段不会自动填充。并强制您单击其中一个建议。

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

答案 2 :(得分:-1)

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

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

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