【问题标题】:How to Submit Form When Autocomplete Suggestion Is Chosen选择自动完成建议时如何提交表单
【发布时间】:2013-03-19 14:47:58
【问题描述】:

我正在使用 jquery-ui 自动完成功能,但没有得到我需要的东西。我有自动完成功能,但现在这是它的行为。

  1. 用户开始输入并获得建议
  2. 用户找到需要的建议,然后按 Enter 将建议放入文本框
  3. 用户按“输入”键提交表单

我想结合 #2 和 #3 中发生的事情,以便用户做出选择,按“enter”,然后提交表单。

我找到了一些posts with similar issues,但我无法找到适合我的解决方案。我认为这应该可行......但它没有。

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;
                    }
        });
      });

我做错了什么?

更新:谢谢大家的快速回复!

【问题讨论】:

  • 您的表单是否有id 属性?问题是您在表单 field 上调用 submit 而不是表单本身。
  • 你没有向我们展示 HTML..
  • 对不起。只是换成了 HTML 而不是 ERB。

标签: javascript jquery ruby-on-rails jquery-ui


【解决方案1】:

您正在尝试在文本框而不是表单上运行搜索!

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

或在表单中添加一个id并替换

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

【讨论】:

    【解决方案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;
                    }
        });
      });
    

    【讨论】:

    • 感谢代码,这段代码对我帮助很大,再次感谢。
    【解决方案3】:

    输入表单的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();
            });
          });
    

    【讨论】:

      【解决方案4】:

      我认为你可以替换

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

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

      【讨论】:

        猜你喜欢
        • 2013-09-29
        • 2011-01-13
        • 1970-01-01
        • 2014-02-05
        • 2016-07-14
        • 1970-01-01
        • 2017-10-30
        • 1970-01-01
        • 2012-01-12
        相关资源
        最近更新 更多