2010-05-31 45 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都被设置为正确的值。

相关问题