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 中,否則將其保留。
第一次調用它時傳遞一個空字符串。
在按鍵事件中調用以搜索變量作為參數的函數。
添加回答
舉報