2

jquery-uiオートコンプリート関数を使用していますが、必要なものが得られません。オートコンプリートが機能していますが、今はこれで動作します。

  1. ユーザーが入力を開始し、提案が表示されます
  2. ユーザーが必要な提案を見つけ、Enterキーを押して提案をテキストボックスに入力します
  3. ユーザーが「Enter」を押してフォームを送信する

ユーザーが選択を行い、「Enter」を押してフォームを送信できるように、#2と#3で行われることを組み合わせたいと思います。

同様の問題を抱えた投稿をいくつか見つけましたが、解決策を見つけることができませんでした。これはうまくいくはずだと思います...しかし、そうではありません。

HTML

    <form accept-charset="UTF-8" action="/contacts" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
        <input id="search" name="search" size="30" type="text" />
        <input class="button medium blue1" type="submit" value="Search" />

Javascript

  $(document).ready(function() {
      $("#search").autocomplete({
        source: "/search_suggestions",
        autoFocus: true,
        select: function(event, ui) {
                        $(event.target).val(ui.item.value);
                        $('#search').submit();
                        return false;
                    }
        });
      });

私は何が間違っているのですか?

更新:迅速な返信をありがとうございました!

4

4 に答える 4

4

フォームではなく、テキストボックスで検索を実行しようとしています。

$('#search').closest("form").submit();

またはフォームにIDを追加して置き換えます

$('#searchFormsIdHere').submit();
于 2013-03-19T14:56:16.057 に答える
2

フォームIDを適切に指定する必要があります。

<form accept-charset="UTF-8" action="/contacts" method="get" id="searchform">
  ...
</form>
$(document).ready(function() {
  $("#search").autocomplete({
    source: "/search_suggestions",
    autoFocus: true,
    select: function(event, ui) {
                    $(event.target).val(ui.item.value);
                    $('#searchform').submit();
                    return false;
                }
    });
  });
于 2013-03-19T14:56:51.100 に答える
1

フォームのIDをsearchFormsIdHere

$(document).ready(function() {
      $("#search").autocomplete({
        source: "/search_suggestions",
        autoFocus: true,
         select: function (event, ui) {
     var selectedObj = ui.item;              
      $("#search").val(selectedObj.value);
     $('#searchFormsIdHere').submit();
        });
      });
于 2013-03-19T14:57:33.557 に答える
1

交換できると思います

$('#search').submit();

$('#search').parents('form').submit();
于 2013-03-19T14:57:56.907 に答える