2012-04-27 48 views
1

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

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

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

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

编辑:

保持这个单独的div:通过调用jQuery('.dynamiccontentcont').clone()

  • 将选定的值(当你正在做的

    <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. 克隆这个div你的代码)
    2. 追加div在哟我们的代码
  • +0

    您是否以另一种方式使这更优雅?我只是意识到我需要为每个选择添加一个删除按钮,它会使我的代码更难看。 – 2012-04-27 16:43:53

    +0

    第二个div有一个“f-right”的独立类,所以克隆将无法按预期工作。 – 2012-04-27 17:47:44

    +0

    编辑我的答案,包装父母的所有内容和克隆父母 – mprabhat 2012-04-27 18:08:06