我目前正在使用JQM自动完成功能,我可以在回调函数中访问标签$ a.text()但不能访问值...如何访问值字段?
我的JSON结构是
{
"label": "TEST CLIENT ONE",
"value": {
"internalCustomerID": 1,
"contactName": "DASDASDASD",
"name": "TEST CLIENT ONE",
"address": "SESAME STREET",
}
}
$("#textinput2").autocomplete({
target: $('#suggestions'),
source: jsData,
callback: function(e) {
var $a = $(e.currentTarget);
console.log("Selected a: " +$a);
$('#textinput2').val($a.text());
$('#textarea2').val(jsData[id].value.internalCustomerID+' '+jsData[id].value.address);
$("#textinput2").autocomplete('clear');
},
minLength: 1
});
我想这样做而无需在数组中再次搜索标签...我使用http://www.andymatthews.net/read/2012/03/27/jQuery-Mobile-Autocomplete-now-available作为我的自动完成功能。
TIA
答案 0 :(得分:0)
默认情况下,jqm autocomplete put是你填充的“值”,在你给他的“链接”的末尾(在自动完成功能中)。
为了解决这个问题,我添加了"jqm.autoComplete-1.3.js"
line 27: (in the a tag)
文件
data-id="'+ value.value +
然后在你的回调函数中,你可以:$a.attr("data-id")
来获取你的价值。
希望这有帮助!
答案 1 :(得分:0)
转义你的JSON并将它放入href部分(所以它看起来像#{x:1,y:2},而不是unescape它,如下所示:
callback: function(e) {//on each suggested item after it's clicked
var a = $(e.currentTarget);
var hDec = str2array(a.attr('href').substr(1));
now.we.have.an.array(hDec[0], hDec[1]);
$('#sym_suggest').val(a.text());
$("#sym_suggest").autocomplete('clear').val("");
},