选择jQuery UI生成的输入元素焦点上的文本

时间:2013-05-17 20:08:47

标签: jquery jquery-ui autocomplete

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

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

这是一个jsFiddle,上面有这个例子。

通常,要在接收焦点时选择输入元素中的文本,可以执行以下操作,例如在this中提问:

//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>")

2 个答案:

答案 0 :(得分: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();
          });

FIDDLE

是的,您必须使用mouseup才能让选择工作。

答案 1 :(得分:2)

将此添加到您的代码中:

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

<强> Check Fiddle