首页 > 解决方案 > Javascript首次单击输入并带有建议在Safari中不起作用

问题描述

我正在尝试在输入上附加点击处理程序,但由于某种原因,它不适用于第一次点击进入autosuggestionsafari 的输入。第一次点击后的所有其他点击都有效。因此,例如,如果一个输入在它之前有一个名称或标签First name,或者任何类似的内容Last nameEmailSafari 会在输入的末尾放置一个建议小部件,并建议我猜想在 Keychain Access 中的信息。Click 事件在我第一次单击该输入时不会触发,在第一次触发之后它就可以了。

这是产生此问题的代码。基本上我需要一种方法来在每次点击时触发输入的点击事件(最好是香草js,但jquery也可以)。

HTML:

<form>
    // Click on this input doesn't trigger the first time I click it because Safari has a suggestion widget for this input
    <label for="email">Email</label>
    <input type="email" class="form-control" id="email" placeholder="you@example.com" data-input="">

    // Click on this input triggers every time I click it with no issue
    <label for="address">Address</label>
    <input type="text" class="form-control" id="address" placeholder="1234 Main St" required="" data-input="">
</form>

JS:

var inputs = document.querySelectorAll('[data-input]');

var myFunction = function(event) {
    console.log('Clicked');
};

for (var i = 0; i < inputs.length; i++) {
    // I put this console.log here to see if all of the inputs pass through this for loop to get the event listener and they do
    console.log(inputs[i]);
    inputs[i].addEventListener('click', myFunction);
}

编辑:尽管@gopigorantala 在他的评论中的链接可能被认为是重复的,但我并不是在寻找与问题相同的东西。该问题要求一种方法来禁用输入上的 safari 自动建议功能,我正在寻找一种方法来检测输入上的点击,尽管存在自动建议。

标签: javascriptjqueryhtmlsafari

解决方案


推荐阅读