如何在Django中发送带有自动完成搜索词的POST请求
我正在使用一个自动完成的表单(Django-ajax-selects),它会从数据库中返回一个下拉列表,列出可选的项目。当用户点击某个项目后,搜索框会填入该项目的名称。我希望能把搜索框里的内容提取出来,然后在用户按下回车后,页面能跳转到用户输入的那个项目的页面。
<form method="POST" action="/builds/show/">{% csrf_token %}
上面提到的action
里的网址需要加上数据库中项目的名称。如果数据库中的项目名称是First Post
,那么action
里的网址应该是:
<form method="POST" action="/builds/show/First__Build">{% csrf_token %}
我想知道有没有办法从输入框中获取这个词,输入框在html中看起来是这样的:
<input type="text" class="form-control" placeholder="Search..." name="search" id="id_postField" onkeyup="searchOpen()" data-plugin-options="{"min_length": 1, "html": true, "source": "/builds/autocomplete/ajax_lookup/PostsTable"}" data-ajax-select="autocomplete" autocomplete="off" value="" name="postField"></input>
我知道在Django中可以通过命名网址来实现,但有没有办法在html这边完成这个操作呢?
这是一个ajax自动完成的示例效果:

1 个回答
1
你可以用jquery来设置表单的action属性,方法如下:
$("#id_of_form").attr("action", "/builds/show/" + $("#id_postField").val())
这里的 #id_of_form
是你的表单的ID,或者你可以用其他选择器来选中你的表单。