0

我正在尝试在一个页面上使用自动完成功能,如果输入字段(从 mySQL 生成)都需要相同的查找,则该页面的数量很大。
单个自动完成只使用

$( "#surname" ).autocomplete({
source: "search.php",

所以我想到了做..

$( "input" ).autocomplete({
source: "search.php",

很好,但是我的查找查询返回了第二个变量,我需要将其放入表单的另一个字段中。查找字段和其他字段具有相关名称 ef bar2 和 bar3email。使用“输入”选项,我如何知道哪个字段生成了查找,以便我可以计算出我希望第二个变量去哪里的字段名称?

尝试更简单地说,如果我在名为“bar2”的字段中执行自动完成并用名称填充它,我希望将第二个返回的变量(相关电子邮件)放入名为“bar2email”的字段中。

谢谢
史蒂夫

4

2 回答 2

0

谢谢。
意识到我可以用$(this).attr('id')来识别触发字段
所以这个......

$( 'input[type=text].ck' ).autocomplete({  
source: "search.php",  
minLength: 1,  
delay: 250,  
select: function( event, ui ) {  
var destfield = '#' + $(this).attr('id') + 'mail';  
log(destfield, ui.item.Email);  
}  
});  

...从自动完成 (ui.item.Email) 中返回项目以及触发它的变量的 id(destfield,派生自 $(this).attr('id') )

于 2013-07-19T20:44:26.277 回答
0

提供一个回调函数来处理选择事件作为初始化选项或绑定到选择事件。请参阅有关 select 事件的api文档。

选择事件将传递一个event对象。事件对象具有名为 的属性target。您可以使用此属性来确定哪个 DOM 元素启动了该事件。像这样的东西会起作用。

$( "input" ).autocomplete({
source: "search.php",
select: function(event,ui){
         var targetFieldId = event.target.id; //get id of DOM element ie bar2
         var relatedField = document.getElementById(targetFieldId+'email'); //get related field
         relatedField.val(ui.item.value);  // assuming second varible is value
        }
});
于 2013-07-19T16:48:06.317 回答