[英]Dynamically get URL for JQuery Ajax request from Data Attribute
我有一個JQuery自動完成功能,我需要能夠將url傳遞給它。 我正在嘗試從html data-url屬性中提取url,但是我目前在JavaScript控制台中得到的變量是未定義消息,所以我知道我沒有得到我期望的值。 我在下面包含了我的代碼。 任何幫助將不勝感激。
jQuery函數:
$(function () {
$(".autocomplete").autocomplete({
delay: 0,
source: function (request, response) {
var baseURL = $(this).data("url");
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: baseURL + request.term,
dataType: "json",
success: function (data) {
response(data)
}
});
},
minLength: 1,
});
HTML元素:
<td style="width: 90%">
<label for="tag_Name" class="inline">Server Tags: </label>
<input class="fixed autocomplete" type="text" id="tag_Name" placeholder="Type tags to add..." data-url="/RequestFieldValues/GetLikeResourceTags/?prefix=" />
</td>
試試這個...
$(function () {
$(".autocomplete").each(function() {
var baseURL = $(this).data("url");
$(this).autocomplete({
delay: 0,
source: function (request, response) {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: baseURL + request.term,
dataType: "json",
success: function (data) {
response(data)
}
});
},
minLength: 1,
});
});
});
我已經將.autocomplete()
放在each()
函數中,因此您可以參考this
以從data屬性獲取基本URL。 然后,您可以將其傳遞給source
函數。
順便說一句,如果輸入多於1個,則需要使每個輸入都有唯一的ID。 您不應該使用具有相同ID的元素:)
在ajax請求中更改URL的另一種方法
$.ajax({
url: "http://static.url/",
beforeSend: function (xhr) {
this.url = "http://dyn.url/" + "here"
}
});
我認為您應該做的是:
$(function () {
var baseURL = $(".autocomplete").data('url');
$(".autocomplete").autocomplete({
delay: 0,
source: function (request, response) {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: baseURL + request.term,
dataType: "json",
success: function (data) {
response(data)
}
});
},
minLength: 1,
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.