可执行和自动完成协作的工作示例

时间:2009-09-22 06:20:48

标签: javascript jquery autocomplete jeditable

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


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

6 个答案:

答案 0 :(得分:13)

看看这个

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. 
    }
);

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

答案 1 :(得分:11)

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

演示用5行代码完成。它使用JörnZaefferer的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"]
    }
});

答案 2 :(得分:4)

我需要与来自bassistance的jeditable和autocomplete相同的功能,以及用逗号分隔的电子邮件列表。所以,我改变了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的设置相同。

答案 3 :(得分:2)

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

自动完成:bassistance

答案 4 :(得分:1)

将它与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"]
      }
  });

答案 5 :(得分:0)

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);
            }
        });

Datatable旧版可编辑代码:

{
  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}">