JqueryUI自动完成功能可防止每次按键调用

时间:2014-06-09 07:58:28

标签: jquery jquery-ui autocomplete

我正在使用JqueryUI Autocomplete,我想要做的是阻止JqueryUI自动完成在每个按键上调用。一切都在以完美的方式运作。我已经将文本字段与自动完成绑定,但是在每次按键时它都会进行调用。如何防止特定键上的呼叫?例如,我想阻止对箭头键的调用。这是我在Coffee中的代码。

$("#location-search").autocomplete
        source: (request, response) ->
          if request.term.length < 1
            $(".pen-dropdown").hide() 
          else
            $.ajax
              url: "http://ws.geonames.org/searchJSON?country=US&lang=en&username=awais545"
              dataType: "jsonp"
              data:
                maxRows: 10
                name_startsWith: request.term

              success: (data) ->
                rows = new Array()
                data = data.geonames
                i = 0

                while i < data.length
                  rows[i] =
                  value:        data[i].name
                  country_code: data[i].adminCode1
                  i++
                rows

                $("#location-search").parent().find(".pen-dropdown ul").html("")

                if $("#location-search").parent().find(".header-loaction").length > 0
                  $("#location-search").parent().find(".pen-dropdown ul").append("<li><a href='#'> All Area </a></li>")

                for row, i in rows
                  $("#location-search").parent().find(".pen-dropdown ul").append("<li><a href='#'> #{row['value']}, #{row['country_code']} </a></li>")
                  window.dropdownli = $(".pen-dropdown li")
                  window.dropdownliSelected = undefined

                for li in $("#location-search").parent().find(".pen-dropdown ul li")
                  $(li).click(setLocationTitle)

                $("#location-search").parent().find(".pen-dropdown").show()

谢谢

1 个答案:

答案 0 :(得分:1)

我有类似的问题。我使用事件&#34; 搜索(事件,ui)&#34;修复了它在自动完成。

 $("#autocompleteText").autocomplete({
            search: function (event, ui) {
           /*keyCode will "undefined" if user presses any function keys*/
                if(event.keyCode)
                { event.preventDefault(); }
            },
            autoFocus:false,
            minLength:3,
            source: function (request, response) {
                //make remote call for result.                   
            }

        });