我有以下脚本,它与一个1维数组的工作。有没有可能让它与一个二维数组一起工作?则通过点击页面上的第二个按钮所选择的项目应该显示所选择的项目的id。
这是包含一维数组的脚本:
var $local_source = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"];
$("#txtAllowSearch").autocomplete({
source: $local_source
});
这是按钮检查id的脚本,它是不完整的:
$('#button').click(function() {
// alert($("#txtAllowSearch").someone_get_id_of_selected_item);
});
发布于 2011-01-27 18:50:54
您需要使用ui.item.label (文本)和ui.item.value ( id)属性
$('#selector').autocomplete({
source: url,
select: function (event, ui) {
$("#txtAllowSearch").val(ui.item.label); // display the selected text
$("#txtAllowSearchID").val(ui.item.value); // save selected id to hidden input
}
});
$('#button').click(function() {
alert($("#txtAllowSearchID").val()); // get the id from the hidden input
});
编辑你还问了如何创建多维数组…
您应该能够像这样创建数组:
var $local_source = [[0,"c++"], [1,"java"], [2,"php"], [3,"coldfusion"],
[4,"javascript"], [5,"asp"], [6,"ruby"]];
有关如何使用多维数组的更多信息,请单击此处:http://www.javascriptkit.com/javatutors/literal-notation2.shtml
发布于 2013-11-08 23:42:26
只有当我将'return false‘添加到select函数中时,我的代码才能工作。如果不这样做,则在select函数内将输入设置为正确的值,然后在select函数结束后将其设置为id值。return false解决了这个问题。
$('#sistema_select').autocomplete({
minLength: 3,
source: <?php echo $lista_sistemas;?> ,
select: function (event, ui) {
$('#sistema_select').val(ui.item.label); // display the selected text
$('#sistema_select_id').val(ui.item.value); // save selected id to hidden input
return false;
},
change: function( event, ui ) {
$( "#sistema_select_id" ).val( ui.item? ui.item.value : 0 );
}
});
此外,我在change事件中添加了一个函数,因为如果用户在选择一个项目后在输入中写了一些东西或删除了项目标签的一部分,我需要更新隐藏字段,这样我就不会得到错误的(过时的) id。例如,如果我的源是:
var $local_source = [
{value: 1, label: "c++"},
{value: 2, label: "java"}]
用户输入ja并使用自动完成功能选择'java‘选项,我将值2存储在隐藏字段中。如果用户删除了'java‘中的一个字母,例如在输入字段中以'jva’结尾,我就不能将id 2传递给我的代码,因为用户更改了值。在本例中,我将id设置为0。
发布于 2014-05-16 00:03:22
我只想分享一下在我这方面起作用的东西,以防它也能帮助别人。或者,基于please上面的回答,请允许我添加另一种从这个站点派生的方法,他在该站点中使用ajax方法作为源方法
http://salman-w.blogspot.ca/2013/12/jquery-ui-autocomplete-examples.html#example-3
kicker是从你的php脚本(下面的listing.php)得到的结果“字符串”或json格式,它派生出要在自动完成字段中显示的结果集,应该如下所示:
{"list":[
{"value": 1, "label": "abc"},
{"value": 2, "label": "def"},
{"value": 3, "label": "ghi"}
]}
然后在自动完成方法的源代码部分:
source: function(request, response) {
$.getJSON("listing.php", {
term: request.term
}, function(data) {
var array = data.error ? [] : $.map(data.list, function(m) {
return {
label: m.label,
value: m.value
};
});
response(array);
});
},
select: function (event, ui) {
$("#autocomplete_field").val(ui.item.label); // display the selected text
$("#field_id").val(ui.item.value); // save selected id to hidden input
return false;
}
希望这能帮到你。万事如意!
https://stackoverflow.com/questions/4815330
复制相似问题