Tim*_*ers 3 jquery autocomplete
问题
在自动完成功能的源函数中,我想获取选择器的ID。有没有一种方法可以遍历调用堆栈并得到它?是否JQuery有这种抽象水平?
为什么?
我将在页面上有多个自动完成功能,并且每个自动完成功能都将在服务器端进行不同的处理。我必须对源使用另一个函数。否则,我会使用URL +数据:很久以前= p
jQuery版本
的jquery 1.9.1
研究
当然,我一直在研究: JQuery API
我认为很多尝试都是行不通的,但现在我处于试错的阶段。
$(this).attr('id'); -未定义
我虽然会尝试获取调用者函数的名称,并对其进行一些处理……似乎什么也没输出。
附加到源函数(这是荒谬的!将文本附加到函数?!真的很绝望...)
$("#inPdVehMk").autocomplete({
source: autoCompletePost + "field="+$(this).attr('id'),
minLength: 2,
select: function(event, ui){
alert(ui.label1);
alert("value= " + ui.item.value + " id= "+ ui.item.id);
}
});
Run Code Online (Sandbox Code Playgroud)
自动完成设置
$("#inPdVehMk").autocomplete({
source: autoCompletePost,
minLength: 2,
select: function(event, ui){
alert(ui.label1);
alert("value= " + ui.item.value + " id= "+ ui.item.id);
}
});
Run Code Online (Sandbox Code Playgroud)
源功能
function autoCompletePost(request, response){
//alert($(this).attr('id')); //this is where I'm testing to see the ids.
$.post(AjaxPageAutoComplete, { searchTerm: request.term, field: 'inPdVehMk'}, //I want field to be dynamic depending on the calling selector.
function(data) {
var splitData = data.split("%");
var json = jQuery.parseJSON(splitData[1].toString());
if(data.search('autoCompleteError') !== -1 || data.length < 1){
DialogBox('Div_ErrorMessage^Open^autoCompleteError');
}else{
response(json);
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
我很尴尬地花了多长时间才弄清楚这一点。
在源函数中使用此行来获取自动完成功能的ID。
$(this.element).prop("id")
Run Code Online (Sandbox Code Playgroud)
由于自动完成是一个jQuery小部件,因此该this对象引用该小部件实例。要进入元素,您需要遍历它的element属性。
公平地讲,除非您使用Widget Factory创建窗口小部件,否则记录的文档不多。
| 归档时间: |
|
| 查看次数: |
1673 次 |
| 最近记录: |