2010-01-14 100 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自動填充自動填充字段。