javascript - 如何在用户开始输入时捕获事件?

标签 javascript html jquery jquery-events

我有一个带有内联十字 图标的输入框。该图标的作用是在单击时清除输入框。这是它的样子:

enter image description here

现在,如图所示,当输入框中没有文本时显示此图标没有任何意义。理想情况下,正确的做法是将其隐藏起来,只有在用户开始在框中输入内容时才显示它。我如何捕捉那个特定事件(用户开始输入)?我知道 oninput() 但问题是,每次键入任何内容时它都会触发。因此,如果您键入“wiki”,它将触发 4 次!我需要在您键入第一个字母时只触发一次的东西。有可能吗?

我能想到的另一种选择是让一个函数监视输入框的值并在它不再为空时启动。像这样:

var check = document.getElementById('word').value;
if(check != ""){
  // show "delete" icon
}

但在这种情况下,我如何确保函数确实触发,即它始终在寻找输入框值的变化?将上面的代码片段放在匿名函数中并保留它是否有帮助?

最佳答案

你可以这样做。

$("#textbox").keyup(function(){
    if($(this).val().length>0){
        $("#clearicon").show();
    }
    else
    {
         $("#clearicon").hide();
    }
});

关于javascript - 如何在用户开始输入时捕获事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34504149/

相关文章:

jquery - 我的 div 标签在 jquery.html 替换后没有正确对齐

javascript - Jquery Validate 允许提交但不满足规则

javascript - 隐藏输入最大值大小

javascript - 如何根据另一个组件的事件处理程序更新一个组件?

c# - 在 WPF 中放入像 Html Float Resource 这样的图片

javascript - 按键盘上的向左箭头时移至上一个输入?

javascript - 如何使用 JQuery 中的输入框修改 CSS

javascript - "TypeError: undefined is not an object (evaluating ' _expo.default.Font ')]"异步加载字体时遇到这个错误

javascript - 在 Firefox 中打印 PDF

Javascript + jQuery,单击处理程序返回 false 以阻止浏览器访问链接