Javascript 从数据属性动态获取JQuery Ajax请求的URL
我有一个JQuery自动完成功能,我需要能够将url传递到其中。我试图从html数据url属性中提取url,但是我当前在JavaScript控制台中得到一个变量is undefined消息,所以我知道我没有得到我期望的值。我在下面包含了我的代码。任何帮助都将不胜感激 JQuery函数:Javascript 从数据属性动态获取JQuery Ajax请求的URL,javascript,jquery,html,ajax,jquery-autocomplete,Javascript,Jquery,Html,Ajax,Jquery Autocomplete,我有一个JQuery自动完成功能,我需要能够将url传递到其中。我试图从html数据url属性中提取url,但是我当前在JavaScript控制台中得到一个变量is undefined消息,所以我知道我没有得到我期望的值。我在下面包含了我的代码。任何帮助都将不胜感激 JQuery函数: $(function () { $(".autocomplete").autocomplete({ delay: 0, source: function (request
$(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()
函数中,因此您可以参考此
从数据属性获取基本url。然后,您可以将其传递到source
函数中
顺便说一句,如果有多个输入,那么您需要使每个输入都有一个唯一的ID。您不应该有具有相同ID的元素:)试试这个
$(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()
函数中,因此您可以参考此
从数据属性获取基本url。然后,您可以将其传递到source
函数中
顺便说一句,如果有多个输入,那么您需要使每个输入都有一个唯一的ID。您不应该有具有相同ID的元素:)我认为您应该做的是:
$(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,
});
我认为你应该做的是:
$(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,
});
在ajax请求中更改URL的另一种方法
$.ajax({
url: "http://static.url/",
beforeSend: function (xhr) {
this.url = "http://dyn.url/" + "here"
}
});
在ajax请求中更改URL的另一种方法
$.ajax({
url: "http://static.url/",
beforeSend: function (xhr) {
this.url = "http://dyn.url/" + "here"
}
});
即使有引号,仍然没有定义。试试看,让我们知道你进展如何。即使有引号,仍然没有定义。试试看,让我们知道你进展如何。在“.autocomplete”类中有不止一个元素,因此我认为也不会起作用。我需要从发出请求的.autocomplete类获取URL,这就是我尝试使用$(this)引用的原因。autocomplete类中有多个元素,因此我认为也不起作用。我需要从发出请求的.autocomplete类获取URL,这就是我试图使用$(this)引用的原因