如何使用隐藏字段使用ID /值对的jquery自动完成

时间:2011-07-05 10:41:00

标签: jquery autocomplete hidden-field

关于我的问题有几个问题,但实际上没有人可以帮助我解决它。 我不熟悉javascript,更不用说jquery所以请耐心等待。

如上所述,我有一个带有jquery自动完成功能的文本字段,效果很好。 但我需要一个隐藏的字段填充相应的ID到选定的值。 这是表格:

<input name="clubname" id="clubname" type="text" />
<input name="clubid" id="clubid" type="hidden" value="" />

对于自动完成,我使用如下数组:{id: 1, value: 'something' }。 整个页面都在php中从数据库获取数据并编写数组。 在自动完成中,我添加了重音文本功能。 这是代码:

var accentMap = {
    'á': 'a',
    'ä': 'a',
    'à': 'a',
    'â': 'a',
    'ö': 'o',
    'ô': 'o',
    'ó': 'o',
    'ò': 'o',
    'ü': 'u'
};

var normalize = function (term) {
    var ret = '';
    for (var i = 0; i < term.length; i++) {
        ret += accentMap[term.charAt(i)] || term.charAt(i);
    }
    return ret;
};

$().ready(function () {
    $('#clubname').autocomplete({
        source: function (request, response) {
            var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), 'i');
            response($.grep(clubs, function (value) {
                value = value.label || value.value || value;
                return matcher.test(value) || matcher.test(normalize(value));
            }));
        }
    });
});
});

似乎我必须使用结果处理程序将ID导入隐藏字段。但是如何准确地访问所选值的ID会让我感到厌烦。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

希望此解决方案可以帮助您

$JsonArray =array();
foreach($EmployeeDetailList as $value){
    $Array[label]=$value['user_name'];
    $Array[value]=$value['user_name'];
    $Array[eid]=$value['id']; //Here goes the ID of the employee
    array_push($JsonArray,$Array);
}
$JsonSerialize=json_encode($JsonArray);

这是服务器端编码以填充Json编码数组

现在,下一部分实现了JQuery Part

$(function() {
var availableTags = <?php echo $JsonSerialize;?>;
$( "#imas" ).autocomplete({
source: availableTags,
select: function(event,ui){
    var userid = ui.item.eid;
    alert(userid); //This will alert the Employee ID . You can use it any where you want 
},
});
});