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

在HTML5中有一个新的输入类型,’搜索’。 在大多数浏览器上,它仅仅是一个简单的“文本”输入,但对于基于webkit的浏览器,它会添加一点交叉来重置输入。

我希望能够处理这个问题,有没有这样的事件?

不,这是不可能的。 这种UI交互是webkit实现的一些优点,但实际上并未进行规范。 看到这里 。 所以,即使有可能 – 你也不能指望这个UI在Gecko中实现,例如,当他们添加type = search时。

本页: http : //css-tricks.com/webkit-html5-search-inputs/提到Ajaxian的评论:

还有一些自定义事件 – 例如“搜索”在用户暂停键入时触发(将’incremental’设置为true)。

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

似乎miketaylr是正确的,不可能抓住这个事件。 请参阅此问题的答案: 如何检测“搜索”HTML5输入的清除?

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

您也可以监听“输入”事件,这比“搜索”事件更通用,但仍然可以捕获重置选项。

我不知道这是正确的答案,但是当用户使用X按钮清除输入时,会调用click事件处理程序。

 $('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. }) 

我不确定,如果还有人正在寻找解决方案。 但是下面的代码片段/技巧对我有用。 CSS完成隐藏clear(X)图标 ,如果你不想隐藏clear(X)图标但需要处理,那么JS代码片段会有所帮助。

CSS技巧:

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

要么

input[type=text]::-ms-clear { display: none; } input[type=text]::-ms-clear { display: none; } – 适用于范围内的所有文本字段

要么

JavaScript技巧(将文本字段值重置为空/空白并触发html事件KeyUp。因此您可以根据需要进行更改)

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

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

试试这个希望帮助你

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