【发布时间】:2015-12-29 03:52:16
【问题描述】:
我有一个带有内嵌 cross 图标的输入框。该图标的作用是在单击时清除输入框。这是它的样子:
现在,如图所示,当输入框中没有文本时显示此图标没有任何意义。理想情况下,正确的做法是将其隐藏并仅在用户开始在框内输入内容时才显示。我如何捕捉该特定事件(用户开始输入)?我知道oninput(),但问题是,每次输入任何内容时都会触发。因此,如果您键入“wiki”,它将触发 4 次!我需要在你输入第一个字母时只触发一次的东西。有没有可能?
我能想到的另一种选择是让一个函数监视输入框的值,并在它不再为空的那一刻启动。像这样的:
var check = document.getElementById('word').value;
if(check != ""){
// show "delete" icon
}
但是在这种情况下,我如何确保函数确实触发,即它始终在寻找输入框值的变化?将上面的 sn-p 放在匿名函数中并保留它会有所帮助吗?
【问题讨论】:
-
为什么你希望它只在第一个字母上触发一次?有什么原因吗?
-
只检查输入的长度
标签: javascript html jquery jquery-events