【问题标题】:Jquery Autocomplete loopingJquery自动完成循环
【发布时间】:2011-08-26 03:43:35
【问题描述】:

我想将自动完成附加到动态生成的输入框。 我可以对那些从外部事件(例如单击按钮)生成的人执行此操作。 但 在必要的情况下,输入框是在前一个输入框的 ONSELECT 事件上生成的,该输入框附加了自动完成功能。

换句话说,最初我的页面上有一个输入框(带有自动填充功能)。当一个选项被选中(ONSELECT)时,它会生成另一个输入框。问题 - 生成的输入框还应该附加自动完成功能,其 ONSELECT 事件应该生成另一个输入框,这应该永远持续下去。

我主要需要这背后的逻辑。我对语法没问题。只是不知道如何处理循环问题。

我在这里阅读了其他需要做同样事情的问题,但在他们的情况下,元素是在外部生成的。非常感谢任何帮助。提前致谢。


编辑-我是新来的,不知道如何发布格式化的代码- @罗布---谢谢。我喜欢你的主意。但我不明白你为什么最后使用了 .val('') 。好吧,它仍然无法正常工作。我也尝试了其他类似的方法(比如将克隆附加到父元素(div#in))。警报显示在选择上。这意味着 onselect 事件正在被触发。这是代码--

$.post("returncategory.php",
       {},
            function(data)
            {
                $('.cat').autocomplete({
                    source: data,
                    type:'json', 
                    minchar: 1, 
                    fillin: false,
                    onSelect: function() {
                        //alert($(this).parent().get());
                        //$(this).clone(true, true).appendTo($(this).parent());
                        //$(this).clone(true, true).appendTo('#in');
                        $(this).clone(true, true).insertAfter($(this)).val();
                    }
                });


            },
            "JSON");

编辑:更正代码格式

编辑:我找到了解决方案 :) 非常感谢您的输入 Rob ! 这就是我所做的 -

$('.cat').live('click', function() {

                $(this).autocomplete({
                url: "returncategory.php",
                type: "json",
                minchar: 1,
                onSuggest: function() {

                },
                onSelect: function() {
                   $('#clicker').click();
                }
            });
            $(this).focus();
     });

$('#clicker').bind('click', function() {
   var newItem = $("<br><br><input class='cat' type='text'name='td_products["+1+"]'/>");
   $('#in').append(newItem);
   newItem.find('input').autocomplete({
                url: "returncategory.php",
                type: "json",
                minchar: 1,
                onSuggest: function() {

                },
                onSelect: function() {
                   $('#clicker').click();
                }
            });

});

附:我很高兴。现在我也知道如何在这里发布格式化代码了。谢谢!

【问题讨论】:

    标签: jquery loops autocomplete dynamically-generated


    【解决方案1】:

    我会说在选择时,您应该获取对当前输入的 jQuery 引用,然后执行$this.clone(true, true).insertAfter($this).val('')

    http://api.jquery.com/clone/

    【讨论】:

    • 尝试调试$(this)。确保它指的是#cat 输入而不是其他内容。试试onSelect: function() { $(this).remove() } 看看输入是否消失。我不确定您使用的是哪个自动完成插件,但我建议您使用 jQuery UI,它非常好
    • 好的,自动完成使用“this.ac”作为参考,所以下面的代码开始工作了。生成的框正在执行自动完成。但是当从第二个框中进行选择时,生成了第三个框,但它不支持自动完成。这是代码 -----$('.cat').autocomplete({ url: "returncategory.php", type: "json", minchar: 1, onSelect: function() { $(this.ac). clone(true, true).insertAfter(this.ac); } });
    猜你喜欢
    • 2022-06-02
    • 2016-07-18
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    相关资源
    最近更新 更多