2

我正在使用此处jQuery UI AutoComplete Combobox所示的选项。这将在您开始输入时立即开始过滤显示的结果,但如果已经选择了一个元素,那么输入(无需手动删除内容)只会附加到字符串上,通常不会找到任何内容。

我希望在输入字段获得焦点时默认选择文本,但是在确定将该逻辑添加到脚本中的位置时遇到了麻烦。

这是一个带有此示例的jsFiddle 。

通常,要在收到焦点时选择输入元素中的文本,您可以执行以下操作,就像在这个SO 问题中一样:

//Select all text in Cost Rate Text Boxes when they have focus
$(document).ready(function () {
    $(".CostRateTextBox").live('mouseup', function () {
        $(this).select();
    });
});

脚本中的_createAutocomplete函数就是创建输入框的地方。是否可以在下一行附近执行此操作?

this.input = $("<input>")
4

2 回答 2

5

在创建输入时添加事件处理程序,就像这样(并且不要使用 live() ):

this.input = $("<input>")

          .appendTo(this.wrapper)
          .val(value)
          .attr("title", "")
          .addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left")
          .autocomplete({
              delay: 0,
              minLength: 0,
              source: $.proxy(this, "_source")
          })
          .tooltip({
              tooltipClass: "ui-state-highlight"
          }).on('mouseup', function() {
              $(this).select();
          });

小提琴

是的,您必须使用mouseup才能使选择生效。

于 2013-05-17T20:16:45.473 回答
2

将此添加到您的代码中:

 .tooltip({
            tooltipClass: "ui-state-highlight"
  }).focus();

检查小提琴

于 2013-05-17T20:14:10.980 回答