如何在Django中发送带有自动完成搜索词的POST请求

0 投票
1 回答
568 浏览
提问于 2025-04-18 06:21

我正在使用一个自动完成的表单(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="{&quot;min_length&quot;: 1, &quot;html&quot;: true, &quot;source&quot;: &quot;/builds/autocomplete/ajax_lookup/PostsTable&quot;}" 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,或者你可以用其他选择器来选中你的表单。

撰写回答