0

诸如搜索/选择之类的自动完成事件正在触发诸如“Home”、“End”、“Shift”之类的键盘键。

我在演示网站上看到这些没有触发示例 例如:http: //jqueryui.com/demos/autocomplete/remote.html

请让我知道如何阻止某些键盘事件的搜索/选择事件。

我认为这是默认行为,但在我的情况下不起作用。

4

3 回答 3

0

我不确定为什么这些事件会为您触发但不是在演示中,也许检查您的 jquery UI 版本?

为了阻止某些键的这些事件,您可以返回 false。

$( ".selector" ).autocomplete({
   search: function(event, ui) { 
     if(event.keyCode === 36) {
       // HOME key pressed
       return false;
     }
   }
});

请参阅此处的“事件”选项卡以获取更多信息

于 2012-05-22T11:49:55.937 回答
0

你可以试试这个;

$( "#selectorid" ).autocomplete({
    search: function(event, ui) {
        $.lastText = $('#selectorid').val();
    }
});


$('#selectorid').keypress(function (e) {
if ($(this).val() == $.lastText) return;
});
于 2012-05-22T12:26:05.763 回答
0

您可以将最后一个文本保存到 var 中,并在触发事件时检查文本是否已更改。

$( ".selector" ).autocomplete({
    search: function(event, ui) {
        if($('.selector').val() === lastText) {
            return false;
        }
        // do what do you want

        lastText = $('.selector').val();
    }
});
于 2012-05-22T11:55:55.983 回答