Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示一个';明文';检测到输入框中的第一个字符后的按钮_Javascript_Jquery - Fatal编程技术网

Javascript 显示一个';明文';检测到输入框中的第一个字符后的按钮

Javascript 显示一个';明文';检测到输入框中的第一个字符后的按钮,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"]'

我正在尝试创建一个搜索栏,允许用户在需要时清除文本。问题是在第一次按键后出现清除按钮。如果输入字段中没有文本,则显然会出现相反的情况

HTML

<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(); 
    }
});