代码之家  ›  专栏  ›  技术社区  ›  Boris Guéry

是否有可用于输入搜索的重置选项的事件?

  •  22
  • Boris Guéry  · 技术社区  · 15 年前

    在HTML5中有一个新的输入类型“搜索”。 在大多数浏览器上,它只是一个简单的“文本”输入,但对于基于webkit的浏览器,它添加了一个小十字来重置输入。

    我想我能处理这个,有什么事吗?

    8 回复  |  直到 8 年前
        1
  •  3
  •   miketaylr    15 年前

    不,不可能。这个ui交互是webkit实现的一些优点,但实际上并没有被指定。见 here . 所以,即使这是可能的——你也不能指望这个用户界面在Gecko中实现,例如,当他们添加type=search时。

        2
  •  17
  •   Nick Wientge    13 年前

    本页: http://css-tricks.com/webkit-html5-search-inputs/ 提到阿贾西安的评论:

    也有一些自定义事件,如引发的搜索 当用户暂停输入时(将“incremental”设置为true)。

    在测试时,我发现当输入被清除时(至少在最新版本的safari中),这个“search”事件也会被调用。

        3
  •  5
  •   Community CDub    7 年前

    看来Miketaylr是对的,不可能抓住这个事件。请参见此问题的答案: How do you detect the clearing of a "search" HTML5 input?

    为了符合标准并且不依赖于一个布局引擎的一个特性,我建议您在 onChange 事件,如果新文本值为空。

        4
  •  3
  •   case nelson    11 年前

    您也可以监听“input”事件,这比“search”事件更通用,但仍然捕获reset选项。

        5
  •  2
  •   jpwatts    14 年前

    我不知道这是 对的 回答,但是 click 当用户使用x按钮清除输入时调用事件处理程序。

    $('input[type="search"]').click(function(event) {
        // This code runs anytime a user clicks on the input,
        // including when they clear it using the X button.
    })
    
        6
  •  2
  •   Sunil Kumar Das    8 年前

    不确定,如果还有人在找解决办法。但是下面的代码片段/技巧对我有效。css完成隐藏 清除(X)图标 如果你不想隐瞒 清除(X)图标 但需要处理的话js代码片段会有帮助。

    CSS诀窍:

    #textFieldId::-ms-clear {display: none;} --对于特定文本字段

    input[type=text]::-ms-clear { display: none; } --对于作用域中的所有文本字段

    javascript技巧(将文本字段值重置为空/空并启动html事件键。因此,您可以根据需要进行更改)

    $('#textFieldId').bind("mouseup", function() {
            var $input = $(this);
            var oldValue = $input.val();
            if (oldValue == "") {
                return;
            }
            setTimeout(function() {
                var newValue = $input.val();
                if (newValue == "") {
                    $input.trigger("keyup");
                }
            }, 1);
        });
    
        7
  •  0
  •   Radoslaw Dziegielewski    11 年前

    您可以添加一个条件来检查搜索字段的内容是否为空,但即使有超时,这也是不好的,因为它首先运行代码,然后清除框。 另一个问题是,在编辑字段时,代码不会对“关闭”按钮作出反应

        8
  •  -1
  •   Don Zanurano    9 年前

    试试这个希望对你有帮助

    $("input[name=search-mini]").on("search", function() {
     //do something
    });
    
    推荐文章