4

返される回答が1つしかない場合は、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
        });
    });

そして、オープンコールバックで、結果が1つしかないかどうかを確認し、結果が1つしかない場合はそれを選択します。

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()行で失敗しました:メンバーが見つかりません

これは、単にWebページに次のような理由があることが判明しました。これを<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 に答える