自动填充不通过表单提交发送数据

时间:2017-04-04 02:12:45

标签: javascript jquery html forms autocomplete

我已经通过自动完成阅读了一系列类似的问题,但所提供的解决方案都没有帮助我解决这个问题。我有一个在数据库中搜索用户名的表单。自动完成列表使用适当的名称填充,并且从为自动完成返回的代码的外观中,名称将返回适当的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>

和JS命名为#34;看门狗&#34;那是看着那个形式领域。我错过了什么?

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

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

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

自动完成代码对我来说很合适。我在代码中看到的唯一问题是您没有在name中提供<input>属性,因此您的浏览器没有将其附加到url.just替换此

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

用这个

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

(记得将clientId更改为服务器所需的名称)