【问题标题】:jQuery autocomplete add selection to divjQuery自动完成将选择添加到div
【发布时间】:2015-12-17 09:09:00
【问题描述】:

我正在使用 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() 函数来使这更简单?最终输出必须附加多个选择,而不仅仅是最后一个选择

【问题讨论】:

    标签: jquery jquery-autocomplete


    【解决方案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()克隆这个div
    2. 放置选定的值(正如您当前在代码中所做的那样)
    3. 在代码中添加 div

    【讨论】:

    • 你还有什么方法可以让它更优雅吗?我刚刚意识到我需要为每个选择添加一个删除按钮,这会使我的代码更难看
    • 第二个 div 有一个附加类“f-right”,因此克隆无法按预期工作。
    • 编辑了我的答案,将所有内容包装在父级中并克隆父级
    • 太好了,这看起来更干净。谢谢
    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 2012-05-12
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    相关资源
    最近更新 更多