jQM自动完成如何获取回调时使用的值?

时间:2012-05-21 15:56:22

标签: javascript jquery jquery-mobile autocomplete

我目前正在使用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

2 个答案:

答案 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(""); 
        },