Подтвердить что ты не робот

Доступны ли какие-либо события для параметра reset для входного поиска?

В HTML5 есть новый тип ввода - "поиск". В большинстве браузеров он просто остается на простом "текстовом" входе, но для браузеров на основе webkit он добавляет немного креста к вводу reset.

Я хотел бы иметь возможность справиться с этим, есть ли для этого событие?

4b9b3361

Ответ 1

Нет, это невозможно. Это взаимодействие с пользовательским интерфейсом - это некоторая доброта, которую реализует webkit, но на самом деле она не указана. См. здесь. Поэтому, даже если это было возможно - вы не можете ожидать, что этот интерфейс будет реализован в Gecko, например, если и когда они когда-либо добавят type = search.

Ответ 2

Эта страница: http://css-tricks.com/webkit-html5-search-inputs/ упоминает комментарий от Ajaxian:

Также есть некоторые пользовательские события - например, поиск, который срабатывает когда пользователь приостанавливает ввод текста (установите "incremental to true" ).

При тестировании я обнаружил, что это событие поиска также вызывается, когда вход очищается (по крайней мере, в последней версии Safari).

Ответ 3

Кажется, что miketaylr верен, это событие невозможно поймать. См. Ответ на этот вопрос: Как вы обнаруживаете очистку "поиска" ? Вход HTML5?

Чтобы соответствовать стандартам и не полагаться на одну особенность одного механизма компоновки, я предлагаю вам запустить ваш код в событии onChange, если новое текстовое значение пуст.

Ответ 4

Я не знаю, что это правильный ответ, но обработчик события 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.
})

Ответ 5

Вы также можете прослушивать событие "вход", это более общее, чем "поиск", но все еще ловит параметр reset.

Ответ 6

Вы можете добавить условие, чтобы проверить, пусто ли содержимое поля поиска, но все это не хорошо даже с таймаутом, потому что он сначала запускает код, затем очищает поле. Другая проблема заключается в том, что код не реагирует на кнопку закрытия при редактировании поля

Ответ 7

попробуйте эту надежду, помогите вам

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

Ответ 8

Не уверен, если кто-то ищет решение. Однако ниже фрагмент кода/трюки работал у меня. CSS, чтобы скрыть значок clear (X), и если вы не хотите скрывать значок clear (X), но ему нужно обработать, то фрагмент кода JS поможет.

Трюк CSS:

#textFieldId::-ms-clear {display: none;} - для конкретного текстового поля

или

input[type=text]::-ms-clear { display: none; } - для всех текстовых полей в области

ИЛИ

JavaScript-трюк (до reset значение текстового поля для пустого/пустого и загорать событие 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);
    });