4

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

4

2 回答 2

6

我使用“打开”回调设置了自动完成:

    $('#people_new_user input[type="text"]').each(
    function(index, element) {
        var field = element.name;
        $(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 = $(this).data('ui-autocomplete').menu.element.children();
  if ($children.size() == 1)
  {
     $children.first().click();
  }
}
于 2012-06-08T11:26:25.950 回答
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)。

于 2014-08-26T10:50:04.710 回答