3 回答
TA贡献1780条经验 获得超4个赞
在 AJAX 调用之前获取输入的值,而不是在事件侦听器中。
var search = document.getElementById("search").value;
$.ajax({
dataType: "json",
url: "{% url 'some urn name' %}?limit=10&q="+encodeURIComponent(search),
...
});
此外,您需要使用 分隔多个查询参数&,而不是?。您应该调用encodeURIComponent()以确保搜索字符串在 URL 中正确编码。
TA贡献1951条经验 获得超3个赞
只需做一个条件检查以确保搜索输入有一个值并且在构建 url 之前不是未定义的,这样的事情应该削减它:
function makeApiCall() {
const searchValue = document.querySelector('#search').value;
const url = searchValue ? `http://myapi.com?limit=10&q=${searchValue}` : 'http://myapi.com?limit=10';
$.ajax({
dataType: "json",
url
}
}
TA贡献1779条经验 获得超6个赞
将 ajax 调用包装在一个将搜索词作为参数的函数中。
如果搜索词不是空白,则将其添加到正确编码的 URL 中,否则将其保留。
第一次调用它时传递一个空字符串。
在按键事件中调用以搜索变量作为参数的函数。
添加回答
举报