我尝试使用DevBridge Autocomplete着名的插件/库(不确定具体用语是什么)来为某些输入字段构建自动完成功能。
我常见的问题是我输了#34;这个"输入应该确定要发送什么参数的函数的上下文(现在是一个简单的警报($(this).attr(' class'))来检查上下文)
我需要将一个参数传递给我的后端,以了解哪个输入是当前处理的。
我的选择器位于输入html上,如下所示:
<input type="text" class="input_actu input_autocomplete" id="input_contentactualites0" name"input_contentactualites0" data-id="" value="" size="70" maxlength="300"/>
现在它看起来像这样:
$('.input_autocomplete').devbridgeAutocomplete({
serviceUrl: 'autocomplete',
params: {
flag: function() {
alert($(this).attr('class'));
}
},
minChars: 3,
type: 'post',
onSelect: function(suggestion) {
$(this).attr("data-id", suggestion.data)
}
});
关于这个问题有很多帖子和解决方案,我已经尝试过.bind(这个):
$('.input_autocomplete').devbridgeAutocomplete({
serviceUrl: 'autocomplete',
params: {flag: function () {
alert($(this).attr('class'));
}.bind(this)},
minChars: 3,
type: 'post',
onSelect: function (suggestion) {
$(this).attr("data-id", suggestion.data)
}
});
它似乎不起作用,我也读过有关call()但我不确定它是否适用于我的情况。
此外,我宁愿不使用Global,因为它不是一个好方法。
非常欢迎任何建议,感谢您抽出时间阅读和帮助:)
答案 0 :(得分:-1)
也许这有帮助?
var params = {
flags: function (o) {
alert($(o).attr('class'));
}
};
var config = {
serviceUrl: 'autocomplete',
minChars: 3,
type: 'post',
onSelect: function (suggestion) {
$(this).attr("data-id", suggestion.data);
//#####################Fire the event:
params.flags(this);
}
};
var configDev = $.extend(config, params);
$('.input_autocomplete').devbridgeAutocomplete(configDev);