【问题标题】:Working example of jeditable and autocomplete working togetherjeditable 和 autocomplete 一起工作的工作示例
【发布时间】:2009-09-22 06:20:48
【问题描述】:

我看到很多关于这方面的谷歌帖子,但似乎都在谈论这是如何进行的。有谁知道 jeditable 和自动完成功能的工作版本一起工作,所以我可以单击文本并获取一个文本框并具有针对该文本框的自动完成功能


编辑: 我正在开放赏金,因为这些解决方案似乎仍然没有复制堆栈溢出标签 + jeditable,我可以在单击文本后使用 jeditable 获取可编辑的 texbox,然后能够输入一个逗号分隔的列表,自动完成每个条目作为i 键入(类似于在堆栈溢出中输入标签)。

【问题讨论】:

    标签: javascript jquery autocomplete jeditable


    【解决方案1】:

    看看这个

    JQuery Based Inplace Editing + AutoComplete

    用法

    $('#edit').editable( 'echo.php', // POST URL to send edited content
        { indicator : , // options for jeditable 
            event: 'click'      // check jeditable.js for more options
        },
        { url: "search.php", //url form where autocomplete options will be extracted
            minChars: 1, // check autocomplete.js for more options
            formatItem:formatItem,
            selectOnly: 1,
            inputSeparator:';' // a new option of inputSeparator was introduced. 
        }
    );
    

    您可以使用 ',' 作为输入分隔符。

    【讨论】:

    • 好像我改变 inputSeparator:';'到 inputSeparator:',' 它仍然使用“;”作为分隔符
    • Tuupola 的回答似乎可以在不更改原始插件的情况下工作。
    【解决方案2】:

    这正是 Jeditable 自定义输入的用途。检查快速和肮脏 working demo(开始输入以字母a开头的内容)。

    演示用 5 行代码完成。它使用 Jörn Zaefferer 的 Autocomple plugin 进行自动补全:

    $.editable.addInputType('autocomplete', {
        element : $.editable.types.text.element,
        plugin : function(settings, original) {
            $('input', this).autocomplete(settings.autocomplete.data);
        }
    });
    

    然后你可以用类似的方式调用 Jeditable:

    $(".autocomplete").editable("http://www.example.com/save.php";, {
        type      : "autocomplete",
        tooltip   : "Click to edit...",
        onblur    : "submit",
        autocomplete : {
            multiple : true,
            data     : ["Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena", "Adrian", "Akron"]
        }
    });
    

    【讨论】:

    • 有没有办法让它工作,你可以像在 SOF 中一样输入多个值(逗号分隔)??
    • 您的解决方案不支持逗号分隔列表
    • 只需将多个自动完成选项设置为 true。多个分隔符默认为逗号 所有选项都列在:shrt.st/m3f。我更新了上面的示例,将多个设置为 true。
    • 自动完成插件现已弃用
    【解决方案3】:

    我需要与来自 bassistance 的可编辑和自动完成功能相同的功能,以获取以逗号分隔的电子邮件列表。所以,我改变了 Mika Tuupola 的演示,让它像这样工作:

    $.editable.addInputType('autocomplete', {
        element: $.editable.types.text.element,
        plugin: function(settings, original) {
            $('input', this).autocomplete(settings.autocomplete.urlOrData,
                settings.autocomplete.options);
        }
    });
    

    当你调用 jEditable 时,你需要添加以下内容:

    $('.autocomplete').editable('http://www.example.com/save', {
        type: 'autocomplete',
        autocomplete: {
            urlOrData: ["Aberdeen", "Ada", "Adamsville"] , // can also be url: 'http://www.example.com/autocomplete',
            options: {
                multiple: true
            }
        }
    });
    

    这里要理解的基本内容是,当您调用 $('input', this).autocomplete(...) 时,您实际上是在将自动完成插件功能应用于可编辑输入,这就是您必须传递自动完成功能的地方选项,通过设置对象,与您传递给 jeditable 的设置相同。

    【讨论】:

      【解决方案4】:

      可编辑:jQueryjeditable我最近在我的项目中使用过它(因此稍作修改以使用页面方法)

      自动完成:bassistance

      【讨论】:

      • 我希望它们在一个解决方案中结合在一起
      • 你从来没有提到过。你说[可编辑和自动完成功能的工作版本],确实如此。
      • 是的,我同意@TheVillageIdiot。应该明确提及。为你 +1。
      • 同意,我已经改变了问题
      【解决方案5】:

      将它与 jQuery UI 结合起来与上面 Mika 的示例没有太大区别。这对我有用

        $.editable.addInputType('autocomplete', {
            element : $.editable.types.text.element,
            plugin : function(settings, original) {
                $('input', this).autocomplete(settings.autocomplete);
            }
        });
      
        $(".autocomplete").editable("http://www.example.com/save.php", {
            type      : "autocomplete",
            tooltip   : "Click to edit...",
            onblur    : "submit",
            autocomplete : {
                minLength  : 2,
                source     : ["Aberdeen", "Ada", "Adamsville", "Addyston", "Adelphi", "Adena", "Adrian", "Akron"]
            }
        });
      

      【讨论】:

        【解决方案6】:

        dataTable、dataTables 可编辑(旧版)、jEditable、自动完成 jQuery 插件与 AJAX 源的完整工作集成以及在页面底部更新的结果(即附加到 html 正文)通过以下方式解决:

        $.editable.addInputType('autocomplete', {
                    element: $.editable.types.text.element,
                    plugin: function(settings, original) {
                        var $row = $(this).closest('tr').prop('id');
                        settings.autocomplete.appendTo = "#results-"+$row;
                        $('input', this).autocomplete(settings.autocomplete);
                    }
                });
        

        数据表遗留可编辑代码:

        {
          tooltip: 'Click to update Owner',
          type: 'autocomplete',
          autocomplete: {
                          serviceUrl: './search/users/by/name',
                          minChars: 5,
                          paramName: 'username',
                          dataType: 'json'
          },
          cancel : 'Cancel',
          submit : 'Submit',
        }
        

        表中的TD有:

        <td id="results-${obj.taskId}">
        

        【讨论】:

          猜你喜欢
          • 2012-10-03
          • 2012-10-03
          • 2015-02-27
          • 1970-01-01
          • 2021-02-03
          • 1970-01-01
          • 1970-01-01
          • 2017-05-01
          • 1970-01-01
          相关资源
          最近更新 更多