我有一个完美的自动完成字段,并从数据库中获取数据。当用户从响应中选择结果时,我想将所选项目的ID保存在隐藏字段中。
以下是我用于自动填充的代码
$jQNetbmis("input#txt_client_name").autocomplete("autosuggest_clientmaster.php", {
width: 160,
mustMatch: true,
selectFirst:false,
formatResult: function(row) {
var resStr = row.toString();
temp = resStr.substring(0,resStr.indexOf("+"));
return temp;
},
formatItem: function(row, i, max) {
var resStr = row.toString();
var temp = resStr.substring(0,resStr.indexOf("+"));
return temp;
}
});
以下是我得到的回复n
name 1+50
Name 2+85
Name 3+86
Name 4+98
Name 5 +103
如果用户选择名称1我想将50保存到隐藏字段中。
我正在使用自动完成 - jQuery插件1.0.2
Krishnik
答案 0 :(得分:1)
您可以使用result
处理程序执行此操作。您可能希望如何实现此目的的一个示例是:
$('input#txt_client_name').result(function(event, data){
$('input#hidden_field').val(data.substring(data.indexOf('+') + 1));
});
每次用户选择项目时都会运行处理程序。顺便说一句,你可能想要使用jQuery UI Autocomplete而不是这个插件,这个插件已被弃用了。
答案 1 :(得分:0)
jQuery UI有一个出色的自动完成小部件,它有很好的文档记录:http://jqueryui.com/demos/autocomplete/。你的案子也在那里,所以通过例子。
答案 2 :(得分:0)
我真的不知道您正在使用的自动填充功能,但问题似乎并非来自它。
只需将id与隐藏字段的现有值连接起来:
$jQNetbmis("input#txt_client_name").autocomplete("autosuggest_clientmaster.php", {
width: 160,
mustMatch: true,
selectFirst:false,
formatResult: function(row) {
var resStr = row.toString();
//temp = resStr.substring(0,resStr.indexOf("+"));
var temp = resStr.split('+');
$('input#hidden_field').val($('input#hidden_field').val()+'+'+temp[1]);
return temp[0];
},
formatItem: function(row, i, max) {
var resStr = row.toString();
var temp = resStr.substring(0,resStr.indexOf("+"));
return temp;
}
});