我有一个形式的jQuery UI自动完成小部件,我想从数据库中预选其值。我的自动完成工作以以下方式工作:ID是一个数字,tha标签和值相同,并且是ID +“ - ” + Description的串联。 When a value from the autocomplete is selected, a hidden field's value is set to the value of id.然后,当提交表单时,隐藏的字段值将保存到数据库中。当用户返回页面进行编辑时,我需要从db中重新加载值:我再次设置IDDEN字段值,然后我想将自动完整小部件的值与ID +“ - ”的串联进行预编译。 +描述表格DB。我认为我应该触发在自动完成中选择一行的事件,但我不知道该怎么做。你有什么想法?谢谢,这是自动完成的代码:

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

解决方案

在返回页面进行编辑的服务器端代码中,我建议您仅将两个带有自动填充的文本框的值以及隐藏的字段设置为从服务器返回时的正确值。那将是服务器端的解决方案,您的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设置为其正确值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top