我有一个简单的输入,谷歌浏览器自动完成功能开始使用。
当我接受→的建议,然后立即点击按钮(没有点击 Enter 或 Tab ),然后访问{{1 DOM元素只返回我手工输入的字符,而不是字段的全部内容。 jQuery也是如此,即调用value
。
以下是演示此行为的minimal example。我在这里使用$(input).val()
输入而不是type="email"
来确保浏览器启用自动完成功能,但它的行为完全相同。
在将建议添加到输入(高亮显示)后单击字段时,会发生同样的情况,而不是使用→。
在Safari 7上发生类似的问题,虽然检索值没有问题,但在我描述的第二个场景中没有发出任何事件(在添加建议后单击该字段)。
除了禁用自动完成功能(我做过)之外,是否有人知道如何规避这一点?
更新:我已打开bug with Chromium。直到现在都没有回应。
答案 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;
尝试一下,我相信当你点击按钮时它会给你全部价值。