【问题标题】:Select Text on Focus of Input Element Generated by jQuery UI在 jQuery UI 生成的输入元素的焦点上选择文本
【发布时间】:2013-05-17 20:08:46
【问题描述】:

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

我希望在输入字段获得焦点时默认选择文本,但我无法确定将该逻辑添加到脚本的何处。

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

通常,要在输入元素获得焦点时选择输入元素中的文本,您可以执行以下操作,例如this 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>")

【问题讨论】:

  • 只需使用$('input').focus()

标签: jquery jquery-ui autocomplete


【解决方案1】:

在创建输入时添加事件处理程序,就像这样(并且不要使用 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 才能使选择生效。

【讨论】:

  • mousedown 也有效,我认为效果更好,因为从按下到释放之间没有延迟。请问您为什么建议mouseup?谢谢:编辑:好的,我自己找到了,mouseup 在 IE 上工作,mousedown 不工作。 ://
【解决方案2】:

将此添加到您的代码中:

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

Check Fiddle

【讨论】:

  • 当我将鼠标移入该字段时,这似乎不起作用,只有当我进入它时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2013-02-06
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
相关资源
最近更新 更多