【发布时间】:2016-10-30 04:50:16
【问题描述】:
我正在尝试在我的 Django 应用程序中创建一个实时搜索框。一般的想法是,当在搜索字段中按下一个键时,它应该将获取请求发送到我的服务器,并且在成功时,数据应该附加到我的搜索结果 p 标记。但是,出于某种原因,我要附加我的整个 HTML 内容。我只想附加在搜索框中发送的信息。
这是我目前所拥有的。
HTML
<form method="get" action="{% url 'sell' %}" class="search_form center-block">
<!--{% csrf_token %}-->
<div class="input-group search_option">
<input type="text" id="searchBox" class="search_field form-control" name="q" placeholder="Search for...">
<span class="input-group-btn">
<input id="search" class="search_submit btn btn-default" onclick="myFunction()" type="submit" value="Search">
</span>
</div><!-- /input-group -->
</form>
脚本
$(document).ready(function(){
$('.search_field').keyup(function(){
$.ajax({
url: "{% url 'sell' %}",
type: "GET",
cache: false,
data: { 'search_text' : $('.search_field').val() },
success: function(data){
$('#search-results').append(data);
}
});
});
});
我相信数据是我试图从 search_field 输入中获取值的地方,但出于某种原因。这是行不通的。
提前感谢您的帮助
【问题讨论】:
-
> 但是,出于某种原因,我要附加整个 HTML 内容。我只想附加在搜索框中发送的信息。你的意思是你在收到回复后发送太多或附加太多?如果是后者,响应是什么样的?如果服务器使用 html 回复,那么您可能希望将其更改为使用 JSON 回复,或者解析 HTML 以仅找到您想要的内容。 (编辑:对不起,这个格式有点乱!希望我的问题/评论是有道理的。)
-
发送过多。是的,我想解析 HTML 以只找到我想要的内容,但我不知道该怎么做。
-
如果您能够向我们提供一个有帮助的示例回复。您可能需要执行类似 $('#search-results').append($(data).find("body").text());
-
所以,我有一个搜索框,您可以在其中输入字符。每次按下键时,我希望响应是用户输入的字符