2010-01-14 104 views
2

我收到了我的问题的第一部分的帮助here谁忘了我提到我的第二个问题。在用户从自动填充字段中选择一个值后,我想将虚拟标识填充到隐藏字段中,以便将其传递给PHP并插入到数据库中。JQuery自动完成隐藏字段

这里是什么,我试图完成一个细分:

  1. 用户在自动填充字段选择场地。
  2. 选择场地后,会场电话,地址和网站显示在自动填充字段下。数据库中记录的ID作为其值传递给隐藏字段。

我有搜索但没有找到任何东西。有人能带领我走向正确的方向吗?

感谢

回答

6

我假设你正在使用标准自动完成插件: http://docs.jquery.com/Plugins/Autocomplete

如果你有这个在您的HTML:

<input type='text' id='foo' /> 
<input type='hidden' id='bar' /> 

你会想用这个作为您的javascript:

$(document).ready(
function(){ 
    var data = "1,address 1,phone 1|2,address 2,phone 2".split('|'); 
    $("#foo").autocomplete(data,{formatItem:function(item){ 
     return item[0].split(',').slice(1).join(' ');} 
    }).result(function(event,item){ 
     $("#bar").val(item[0].split(',')[0]); 
    }); 
}); 

W你正在做的帽子是这样的:

  1. 添加formatItem选项 从源 数据取出ID。
  2. 添加一个结果处理程序到 用id设置隐藏字段。

让我知道这是否有帮助。

+0

@Jieren,今天晚些时候我会试一试,让你知道结果。谢谢。 – mrdthomas 2010-01-14 19:14:00

2

已经打这个砖墙以及我认为,这里有一些帮助,我已经找到了一个更简单的解决方案

$("#fieldA").autocomplete({ 
    source: '<%=Url.Action("functionName", "ControllerName") %>', 
    select: function(e,ui) { $('#fieldB').val(ui.item.objectName) }, 
    }); 

FIELDA不从源文件中的自动完成。我使用ASP.net MVC更是把ControllerName内的functionName(当然你可以只坚持你想,以及网站链接的URL)。网页返回分解成单独项目字段的行列表。唯一的限制是在返回的字段之一被命名为“”。然后,select将允许您从ui.item对象中拆除所有其他字段(ui.item末尾的对象名称),并将其放置在您需要的尽可能多的字段中,而来自的“ui.item.value自动填充自动填充字段。