Поиск или onclick работает ... но проблема, которую я обнаружил, была со старыми браузерами - поиск не удался. Множество плагинов (jquery ui autocomplete или fancytree filter) имеют обработчики размытия и фокуса. Добавление этого в поле ввода автозаполнения работало для меня (использовал this.value == "", потому что это было быстрее для оценки). Размытие и фокусировка удерживают курсор в поле, когда вы нажимаете маленькую «х».
PropertyChange и ввод работали как для IE 10 и IE 8, так и для других браузеров:
$("#INPUTID").on("propertychange input", function(e) {
if (this.value == "") $(this).blur().focus();
});
Для расширения фильтра FancyTree вы можете использовать кнопку сброса и принудительно вызвать событие щелчка следующим образом:
var TheFancyTree = $("#FancyTreeID").fancytree("getTree");
$("input[name=FT_FilterINPUT]").on("propertychange input", function (e) {
var n,
leavesOnly = false,
match = $(this).val();
// check for the escape key or empty filter
if (e && e.which === $.ui.keyCode.ESCAPE || $.trim(match) === "") {
$("button#btnResetSearch").click();
return;
}
n = SiteNavTree.filterNodes(function (node) {
return MatchContainsAll(CleanDiacriticsString(node.title.toLowerCase()), match);
}, leavesOnly);
$("button#btnResetSearch").attr("disabled", false);
$("span#SiteNavMatches").text("(" + n + " matches)");
}).focus();
// handle the reset and check for empty filter field...
// set the value to trigger the change
$("button#btnResetSearch").click(function (e) {
if ($("input[name=FT_FilterINPUT]").val() != "")
$("input[name=FT_FilterINPUT]").val("");
$("span#SiteNavMatches").text("");
SiteNavTree.clearFilter();
}).attr("disabled", true);
Должен быть в состоянии адаптировать это для большинства применений.