Javascript 显示一个';明文';检测到输入框中的第一个字符后的按钮
我正在尝试创建一个搜索栏,允许用户在需要时清除文本。问题是在第一次按键后出现清除按钮。如果输入字段中没有文本,则显然会出现相反的情况 HTMLJavascript 显示一个';明文';检测到输入框中的第一个字符后的按钮,javascript,jquery,Javascript,Jquery,我正在尝试创建一个搜索栏,允许用户在需要时清除文本。问题是在第一次按键后出现清除按钮。如果输入字段中没有文本,则显然会出现相反的情况 HTML <input type="text"> <span>x</span> jQuery $('span').hide(); //Clears the Input Box $('span').mousedown(function() { $(this).siblings('input[type="text"]'
<input type="text">
<span>x</span>
jQuery
$('span').hide();
//Clears the Input Box
$('span').mousedown(function() {
$(this).siblings('input[type="text"]').val('');
});
//Shows/Hides the Clear Button
$('input[type="text"]').on('focus', function() {
if ($(this).val().length > 0) {
$('span').show();
} else {
$('span').hide();
}
}).blur(function() {
$('a').hide();
});
用于检测用户何时与文本框交互
$('input').on('focus input', function () {
$('span').toggle(this.value.length>0);
}).blur(function () {
$('span').hide();
});
另一个选项是对支持它的浏览器使用type=“search”。有些人已经添加了按钮并处理了这个问题
示例:用于检测用户何时与文本框交互
$('input').on('focus input', function () {
$('span').toggle(this.value.length>0);
}).blur(function () {
$('span').hide();
});
另一个选项是对支持它的浏览器使用type=“search”。有些人已经添加了按钮并处理了这个问题
示例:
只要输入或从文本框中删除任何文本,keyup就会运行。这允许您检查输入文本的长度,以查看是否输入了任何文本
更新:
文本框中的任何更改都将运行更新版本。当您粘贴文本时,当您使用键盘输入文本时,它将运行
如果您希望它仅在文本框包含文本时显示,则这将适用于您。
只要输入或从文本框中删除任何文本,keyup就会运行。这允许您检查输入文本的长度,以查看是否输入了任何文本
更新:
文本框中的任何更改都将运行更新版本。当您粘贴文本时,当您使用键盘输入文本时,它将运行
如果您希望它仅在文本框包含文本时显示,这将对您有效。我没有为输入使用搜索属性的一个原因是css“input”中的样式问题事件在通过用户界面更改元素的文本内容时发生。@CarlEdwards您是否尝试添加oninput事件?似乎可以做到这一点,但现在我编写的清除文本的函数遇到了问题。专注于输入,而这两种输入彼此不友好。我认为原因是跨度在输入框之外,因此触发了模糊。单击修复是为了设置单击鼠标向下。我没有为输入使用搜索属性的一个原因是css“input”中的样式问题事件在通过用户界面更改元素的文本内容时发生。@CarlEdwards您是否尝试添加oninput事件?似乎可以做到这一点,但现在我编写的清除文本的函数遇到了问题。专注于输入,而这两种输入彼此不友好。我认为原因是跨距在输入框之外,因此触发模糊。单击修复是将单击设置为鼠标向下,您无需使用键盘向输入添加文本。使用鼠标粘贴将失败。已更新鼠标以处理粘贴和键盘输入。(只要OP只想在文本框包含文本时显示清除按钮),就不需要使用键盘向输入添加文本。使用鼠标粘贴将失败。已更新鼠标以处理粘贴和键盘输入。(只要OP只想在文本框包含文本时显示清除按钮)
$('input[type="text"]').keyup(function(){
if(($(this).val().length) > 0) {
$("#clearfix").show();
}else {
$("#clearfix").hide();
}
});
jQuery('input').bind('input propertychange', function() {
if(($(this).val().length) > 0) {
$('span').show();
}else {
$('span').hide();
}
});