【问题标题】:autocomplete not sending data with form submit自动完成不通过表单提交发送数据
【发布时间】:2017-08-29 01:27:36
【问题描述】:

我已经阅读了一堆与自动完成类似的问题,但所提供的解决方案都没有帮助我解决这个问题。我有一个在数据库中搜索用户名的表单。自动完成列表填充了适当的名称,并且从为自动完成返回的代码的外观来看,这些名称带有适当的 ID 和 VALUE。

为什么我无法提交包含任何数据的表单?

屏幕正在刷新,好像表单已提交,但 GET 未返回任何信息。只是一个“?”在网址的末尾。如果我使用键盘或鼠标在自动完成下拉列表中选择一个选项,则不会通过 GET 传递任何信息。即使我输入一些内容并使用提交按钮并忽略自动完成下拉菜单,仍然没有传递任何信息。

这是当前的 HTML。

<title>TEST</title>
<link href="jquery-ui.min.css" rel="stylesheet" />
<link href="autocomplete.css"  rel="stylesheet" />
<script src="jquery-1.11.2.js"></script>
<script src="jquery-ui.min.js"></script>
<script src="jquery.ui.autocomplete.html.js"></script>

<script type="text/javascript" src="../test.php"></script>


</head>
<body>
    <form id="searchform" method="GET">
        <input type="text" id="searchterm" placeholder="Search For Client">
        <input type="submit" value="Submit"> 
        <script type="text/javascript" src="../js/watchdog.js"></script>      
    </form>
</body> 
</html>

和名为“watchdog”的 JS 正在监视该表单字段。我错过了什么?

$(function() {
    $("#topic_title").autocomplete({
        source: "ajax.php",
        minLength: 2,
        select: function(event, ui) {
            var item = ui.item;
            console.log(item,ui);
            if(item) {
                $(this).val(item.value);
                $(this.form).submit();
                return false;
            }
        }
    });
});

我还应该补充一点,这是该脚本的第七个或任何一个变体,具有相同的空结果。

提前感谢您对此提供的任何帮助。

【问题讨论】:

  • "屏幕正在刷新,好像表单已提交,但 GET 未返回任何信息。"该插件假设使用 ajax 发送搜索请求!不是通过发送表格。你不应该离开或刷新页面
  • 搜索会自动进行,无需提交表单。我要解决的是在那之后的信息会发生什么。我希望能够选择其中一个自动完成建议并使用它来提交表单,这反过来会从该用户那里带回所有数据。

标签: javascript jquery html forms autocomplete


【解决方案1】:

自动完成代码对我来说看起来不错。我在您的代码中看到的唯一问题是您没有在&lt;input&gt; 中提供name 属性,因此您的浏览器没有将其附加到url。只需替换它

<input type="text" id="searchterm" placeholder="Search For Client">

有了这个

<input type="text" id="searchterm" name="clientId" placeholder="Search For Client">

(记得把clientId改成你的服务器期望的名字)

【讨论】:

  • 这行得通。谢谢!我知道一些简单的事情是错误的。我还必须将输入的 ID 改回 javascript 正在寻找的内容。
  • @inkslinger 欢迎您。是的,有时问题是因为简单的事情。
猜你喜欢
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
相关资源
最近更新 更多