В HTML5 search
тип ввода отображается с маленькой буквой X справа, которая очистит текстовое поле (по крайней мере, в Chrome, может быть, в других). Есть ли способ определить, когда щелкают по этому X в Javascript или jQuery, кроме, скажем, обнаружения, когда щелкают по блоку вообще, или выполнения какого-либо определения местоположения по щелчку (x-position / y-position)?
javascript
jquery
html
events
dom-events
Джейсон
источник
источник
onchange
события?Ответы:
На самом деле, существует событие «поиск», которое запускается всякий раз, когда пользователь выполняет поиск, или когда пользователь нажимает «x». Это особенно полезно, потому что он понимает атрибут «добавочный».
Сказав это, я не уверен, что вы сможете определить разницу между нажатием «x» и поиском, если только вы не используете хак «onclick». В любом случае, надеюсь, это поможет.
источник
search
событие происходит иначе, чем когда вы нажимаете на «х». Кажется, он не срабатываетkeyup
,blur
или когда отправляется форма, в которой он находится. Но это заслуживает того, чтобы быть отмеченным как ответ.search
Событие должно срабатывать , когда пользователь нажимает клавишуEnter
. И если у поля поиска естьincremental
атрибут, оно также сработает, когда пользователь перестанет печатать на секунду.input
событие, но неsearch
событие.Привязать
search
-все поле поиска, как показано ниже-источник
Я хочу , чтобы добавить «поздно» ответ, потому что я боролся с
change
,keyup
иsearch
сегодня, и , возможно , что я нашел в конце концов , может оказаться полезным для других тоже. По сути, у меня есть панель поиска по типу, и я просто хотел правильно отреагировать на нажатие маленькой буквы X (в Chrome и Opera она не реализована в FF) и в результате очистить панель содержимого.У меня был этот код:
(Они раздельные, потому что я хотел проверить, когда и при каких обстоятельствах каждый звонил).
Оказывается, Chrome и Firefox реагируют по-разному. В частности, Firefox рассматривает
change
как «каждое изменение ввода», в то время как Chrome обрабатывает его как «когда фокус потерян и содержимое изменено». Таким образом, в Chrome функция «панели обновления» вызывалась один раз, в FF - дважды для каждого нажатия клавиши (один входkeyup
, один входchange
)Кроме того, очистка поля с помощью маленькой буквы X (которой нет в FF) вызвала
search
событие в Chrome: нетkeyup
, нетchange
.Вывод? Используйте
input
вместо:Он работает с одинаковым поведением во всех протестированных мною браузерах, реагируя на каждое изменение входного содержимого (копирование-вставка с помощью мыши, автозаполнения и «X»).
источник
change
событие так же, как Chrome, стреляя только по Enter или потерял фокус.Используя ответ Пауана, это в основном возможно. Ex.
источник
change
событие не начинается, пока вblur
основном. Простое нажатие(x)
внутри поля поиска в Chrome не похоже на какое-либо событие для меня. После дальнейшего расследования (и прочтения комментариев ниже) я принялсяclick
за работу. Так$("input[type='search']").bind('click', function(e) { if ( this.value=="") {//this just cleared!} });
работает на моем конце$("input[type='search']").bind('click', function(e) { if ( this.value=="") {//this just cleared!} });
также срабатывает, когда пользователь щелкает в поле ввода.Я знаю, что это старый вопрос, но я искал подобное. Определите, когда была нажата кнопка «X», чтобы очистить окно поиска. Ни один из ответов здесь не помог мне вообще. Один из них был близок, но на него также влияли, когда пользователь нажимал кнопку «Ввод», он получал тот же результат, что и нажатие «Х».
Я нашел этот ответ в другом посте, и он отлично работает для меня и срабатывает только тогда, когда пользователь очищает окно поиска.
источник
Для меня имело смысл, что нажатие на X должно считаться событием изменения. Я уже настроил событие onChange, чтобы сделать то, что мне было нужно. Поэтому для меня исправление состояло в том, чтобы просто сделать эту строку jQuery:
$('#search').click(function(){ $(this).change(); });
источник
if (this.value === "") { ... }
Похоже, вы не можете получить доступ к этому в браузере. В качестве входных данных для поиска используется HTML-оболочка Webkit для Cocoa NSSearchField. Кажется, кнопка отмены содержится в клиентском коде браузера, и внешняя ссылка не доступна из оболочки.
Источники:
Похоже, вам придется выяснить это с помощью мышки при нажатии на что-то вроде:
источник
Нашел этот пост, и я понимаю, что он немного стар, но я думаю, что у меня может быть ответ. Это обрабатывает щелчок на кресте, возврат и нажатие клавиши ESC. Я уверен, что это, возможно, могло бы быть написано лучше - я все еще относительно новичок в JavaScript. Вот что я в итоге сделал - я использую jQuery (v1.6.4):
источник
попробуй это, надеюсь тебе поможет
источник
Я считаю, что это единственный ответ, который срабатывает ТОЛЬКО при нажатии на х.
Тем не менее, это немного глупо, и ответ Ггутенберга будет работать для большинства людей.
Где
'#search-field'
находится селектор jQuery для вашего ввода. Используйте'input[type=search]'
для выбора всех входных данных поиска. Работает, проверяя поиск события (ответ Пауана) сразу после нажатия на поле.источник
Полное решение здесь
Это очистит поиск при нажатии кнопки поиска x. или вызовет поиск API Api, когда пользователь нажмет Enter. этот код может быть дополнительно расширен с помощью дополнительного сопоставителя событий esc keyup. но это должно делать все это.
Приветствия.
источник
в зависимости от цикла обработки событий js
click
кнопкаsearch
on сбрасывает событие на входе , поэтому приведенный ниже код будет работать так, как ожидается:Приведенный выше код, OnClick событие забронированы
this._cleared = false
цикл событий, но это событие будет всегда работать после того, как вonsearch
случае, так что вы можете стабильно проверитьthis._cleared
состояние , чтобы определить только ли пользователь нажал наX
кнопку , а затем вызвалonsearch
событие.Это может работать практически при любых условиях : вставленный текст , инкрементный атрибут, нажатие клавиши ENTER / ESC и т. Д.
источник
Вот один из способов достижения этого. Вам нужно добавить инкрементный атрибут в ваш HTML, иначе он не будет работать.
источник
ECMASCRIPT 2016
источник
Поиск или onclick работает ... но проблема, которую я обнаружил, была со старыми браузерами - поиск не удался. Многие плагины (автозаполнение jquery ui или фильтр фантазии) имеют обработчики размытия и фокуса. Добавление этого в поле ввода автозаполнения работало для меня (использовал this.value == "", потому что это было быстрее для оценки). Размытие и фокусировка удерживали курсор в поле, когда вы нажимаете маленькую «х».
PropertyChange и ввод работали как для IE 10 и IE 8, так и для других браузеров:
Для расширения фильтра FancyTree вы можете использовать кнопку сброса и вызвать событие click следующим образом:
Должен быть в состоянии адаптировать это для большинства применений.
источник
При щелчке перекрестной кнопки TextField (X) onmousemove () срабатывает, мы можем использовать это событие для вызова любой функции.
источник