javascript - jQuery UI 自动完成

标签 javascript jquery jquery-ui autocomplete jquery-events

我正在使用 jQuery UI 的自动完成插件,一切都很好,除了当用户单击他们想要的值时,我已经分配给“select:”方法的功能之前触发该字段的值已更改。因此,如果我在输入字段中键入“Foo”,然后单击“Foo Bar”的自动完成匹配项,该函数会将值检测为键入的值(在本例中为“Foo”),而不是从自动完成中选择的值列表。一旦函数触发(在本例中,我只是弹出一个带有 this.value 的警告框),输入字段的值将设置为通过自动完成列表选择的值。如果用户使用键盘(箭头键->tab)选择选项,则该问题不会发生,只有在使用鼠标时才会发生。

  $(function()
  {
    var aEmps = 
    [
<?php
echo $sEmps;
?>    
    ];

    $("#slast").bind( "keydown", function( event ) {
      if ( event.keyCode === $.ui.keyCode.TAB &&
          $( this ).data( "autocomplete" ).menu.active ) 
          { event.preventDefault(); }
    })
    .autocomplete({
      source: aEmps,
      select: function(event, ui)
      {
        var aName = $(this).val();
        alert(aName);
      }
    })
  });

由于大多数用户将使用他们的鼠标与之交互,我必须找到一种方法来在触发“select:”函数之前获取值集。我相信我可以通过在自动完成之前向语句添加条件来解决这个问题,但我需要一些帮助来找到正确的语法。

最佳答案

查看文档,选择事件似乎是在更新选择时触发的,而不是在更新选择之后触发的。尝试使用 change 事件代替 select,看看是否能解决您的问题。

关于javascript - jQuery UI 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438592/

相关文章:

javascript - 从另一个 javascript 文件调用 Vuex Getters

javascript - 如何搜索忽略重音字符的字符串(例如 ã = a)

jquery - 在 `onClick` 上切换 DIV 高度

jQuery 拖放可回流内容

javascript - 如何将对象推送到数组中指定的索引位置?

javascript - 可以将嵌入的 swf 从一个标签移动到另一个标签吗?

javascript - 将键和值动态插入 json 数组结构

javascript - 点击 fancybox 弹出窗口时需要弹出 Fancy 框

javascript - jQuery 无法将 Sortable 与同位素一起使用

javascript - jquery ui Accordion 禁用点击