Jquery自动完成:如何防止事件被触发

时间:2012-05-22 11:40:48

标签: jquery autocomplete

搜索/选择等自动填充事件会触发“Home”,“End”,“Shift”等键盘键。

我看到这些不是在演示网站上的例子 例如:http://jqueryui.com/demos/autocomplete/remote.html

请告诉我如何阻止某些键盘事件的搜索/选择事件。

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

3 个答案:

答案 0 :(得分:0)

我不确定为什么事件会为你而不是在演示中,可能会检查你的jquery UI版本?

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

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

有关详细信息,请参阅“活动”标签here

答案 1 :(得分:0)

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

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

        lastText = $('.selector').val();
    }
});

答案 2 :(得分:0)

你可以试试这个;

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


$('#selectorid').keypress(function (e) {
if ($(this).val() == $.lastText) return;
});