jquery-ui自动完成选择唯一的答案

时间:2012-06-08 11:26:26

标签: jquery-ui jquery-ui-autocomplete

如果只有一个答案回来,我想让jquery-ui自动完成自动选择答案。

2 个答案:

答案 0 :(得分:6)

我使用“开放”回调设置自动完成功能:

    jQuery('#people_new_user input[type="text"]').each(
    function(index, element) {
        var field = element.name;
        jQuery(element)
            .autocomplete({
          source: "/cf/AutoComplete/People?current="+field,
          open: openUser
        });
    });

在开放回调中,我会查看是否只有一个结果,如果是,则选择它:

function openUser(event, ui)
{
  // Try to select the first one if it's the only one
  var $children = jQuery(this).data('autocomplete').menu.element.children();
  if ($children.size() == 1)
  {
    $children.children('a').mouseenter().click();
  }
}

答案 1 :(得分:0)

非常感谢,这对我们很有用。如果它对任何人有帮助,我在IE10下首次使用它时遇到了问题。 它在IE8,Chrome和Firefox中一直运行良好。

在IE10下,jQuery(this).data('autocomplete').menu.element.children()行失败了:未找到成员

原来这只是因为网页有:<meta http-equiv="X-UA-Compatible" content="IE=7"/> 删除这个解决了问题(它在IE8中仍能正常工作)。

但在我注意到这一点之前,我花了很多时间尝试并且未能转移到jquery-1.11.1.min.js(来自1.6.4)和jquery-ui-1.11.0(来自1.8.16)。