jQuery自动完成向div添加选择

时间:2012-04-27 16:33:03

标签: jquery jquery-autocomplete

我正在使用jQuery中的自动完成插件,我想将我的结果选择附加到带有其他元素的div元素:隐藏输入和文本输入。

这是我的HTML代码:

这是我在jQuery中的功能:

$("#buscar").autocomplete({
    source: "procesos/buscarPersona.php",
    minLength: 2,
    select: function( event, ui ) {
        $("#acreditados")
            .append('<div class="col50"><p>'
            + '<input type="hidden" name="id" value="' + ui.item.id_persona + '"/>'
            + ui.item.value 
            + '</p></div>'
            + '<div class="col50 f-right"><p>Monto:' 
            + '<input type="text" /></p></div>');
        }
});

到目前为止,我的代码工作正常,但我发现难以维护显示选择结果和附加输入的追加功能。有没有办法可以使用load()函数来使这更简单?最终输出必须附加多个选择,而不仅仅是最后一个选择

1 个答案:

答案 0 :(得分:1)

不要使用load,load是Ajax,意思是与服务器通信,除非你需要一些验证或更复杂的逻辑,否则对于每个选择,我们应该避免网络访问。

如果您使用加载,那么对于每个选择,您将与您的服务器通信,然后它将通过您的html。

恕我直言,这个解决方案看起来很难看,但更有效率。

编辑:

分开保留这个div:

    <div class="dynamiccontentcont">
       <div class="col50">
          <p><input type="hidden" name="id" value=""/></p>
       </div>
      <div class="col50 f-right">
         <p>Monto:<input type="text" /></p>
     </div>
   </div>

选择

  1. 通过调用jQuery('.dynamiccontentcont').clone()
  2. 克隆此div
  3. 放置所选值(正如您目前在代码中所做的那样)
  4. 在代码中附加div