我正在尝试将一个额外的参数传递给select2中的ajax调用:
$(".auto-sug").select2({
width:'element',
minimumInputLength:2,
ajax: {
url: "/action/get-custom.php",
data: function (term, page) {
return {
q: term, // search term
page_limit: 10
};
},
results: function (data, page) {
return {results: data.stuff};
}
}
});
我实际上想要将另一个参数传递给ajax调用...元素本身的id
<input type="text" class="auto-sug" name="custom" id="3383" />
但是,我无法弄清楚如何实际访问元素的ID(3383)或页面上的任何其他值。
答案 0 :(得分:13)
假设有多个具有类auto-sug
的元素,您可以尝试这样的事情:
$(".auto-sug").each(function() {
var thisId = this.id;
$(this).select2({
...
ajax: {
...
id: thisId,
},
});
});
答案 1 :(得分:5)
你应该在数据函数中传递额外的参数而不是根ajax,以便每次发出请求时执行:
ajax: {
url: "/action/get-custom.php",
data: function (term, page) {
return {
q: term, // search term
anotherParm: whatEverValue, //Get your value from other elements using Query, for example.
page_limit: 10
};
然后,要获取当前select2的ID,您可以将whateverValue
替换为$(this).data(key)
答案 2 :(得分:0)
您可以在此处添加新参数。
data: function (params) {
ultimaConsulta = params.term;
localidad = $("#idOcultoLocalidad").val(); //this is the anotherParm
return {
criterio: params.term, // search term
criterio2: localidad,
};
},