Art*_*uro 4 jquery jquery-ui autocomplete jquery-selectors
我正在尝试将jQuery UI自动完成同时应用于三个输入框,因为请求和逻辑几乎相同,只有一个参数在它们之间发生变化.
因为我正在使用ajax检索的远程源,所以我试图知道请求是从哪个文本框中获取的.
正如您在'source'事件中的'switch'语句中所看到的,我尝试了$(this).attr("id")但这不起作用,它返回'indefined'
我试过这个,因为它处理'选择'和'焦点'事件,但不是'源'.我想我正在使用它的方式我指的是'来源'
有没有人知道如何知道在这种情况下调用的事件是哪个元素?
谢谢!!
$("#campo-categorias, #campo-tipos, #campo-colonias").autocomplete({
minLength: 1,
delay: 100,
source: function(request, response){
var solicitud = new Object;
switch ($(this).attr("id")){
case "campo-categorias":
solicitud.action = 'get_categorias';
break;
case "campo-tipos":
solicitud.action = 'get_tipos_comida';
break;
case "campo-colonias":
solicitud.action = 'get_colonias';
break;
}
solicitud.consulta = request.term;
$.ajax({
url: "wp-admin/admin-ajax.php",
dataType: "json",
data: solicitud,
type: "POST",
success: function(data){
response(data);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我想你正在寻找this.element.attr("id")你的switch语句.这应该适用于找到正确的ID.
此外,您的代码缺少大括号,它应如下所示:
$("#campo-categorias, #campo-tipos, #campo-colonias").autocomplete({
minLength: 1,
delay: 100,
source: function(request, response){
var solicitud = new Object;
switch (this.element.attr("id")){
case "campo-categorias":
solicitud.action = 'get_categorias';
break;
case "campo-tipos":
solicitud.action = 'get_tipos_comida';
break;
case "campo-colonias":
solicitud.action = 'get_colonias';
break;
}
solicitud.consulta = request.term;
$.ajax({
url: "wp-admin/admin-ajax.php",
dataType: "json",
data: solicitud,
type: "POST",
success: function(data){
response(data);
}
});
}
});
Run Code Online (Sandbox Code Playgroud)