2010-05-31 94 views
1

我在表單中有一個jQuery UI自動填充小部件,我想從數據庫中預選它的值。 我的自動完成功能按以下方式工作:id是一個數字,標籤和值是相同的,並且是id +「 - 」+ description的串聯。 如果選擇自動完成的值,則將隱藏字段的值設置爲id的值。 然後,當表單被提交時,隱藏的字段值被保存到數據庫。 當用戶回到頁面進行編輯時,我需要從db重新加載值:我再次設置idden字段值,然後我想要預編譯自動填充小部件的值與id +「 - 「+從db中獲取描述。 我想我應該觸發在自動完成中選擇一行的事件,但我不知道該怎麼做。你有什麼想法? 謝謝 這裏是自動完成的代碼:如何預編譯一個jQuery UI自動填充小部件?

$('#codice_contratto').autocomplete({ 
    source: 'do_contratto.php', 
    select: function(event, ui) { 
       $('#id_contratto').val(ui.item.id); 
      } 
}); 

回答

0

在返回頁面編輯服務器端代碼,我建議只設置都與自動完成的文本框的值以及隱藏字段設置爲它們從服務器返回的正確值。這將是一個服務器端解決方案,你的HTML會是這個樣子:

<input type="textbox" id="condice_contratto" value="1 - the description" /> 
<input type="hidden" id="id_contratto" value="1" /> 

jQuery的自動完成插件正常工作時,該元素的值是預設的。本身並沒有真正的「選擇」一個項目的概念。它只是騎在文本框的頂部,並用許多花哨的UI設置它的價值。

如果你需要一個客戶端解決方案,只是做這樣的事情:

$(document).ready(function() { 
    $('#condice_contratto').val(current_id + ' - ' + current_description); 
    $('#id_contratto').val(current_id); 
} 

這是假設變量current_id和current_description都被設置爲正確的值。

相關問題