【问题标题】:jQuery set the selected textjQuery设置选中的文本
【发布时间】:2010-11-21 19:27:49
【问题描述】:

我希望有一个文本输入,它在焦点上选择里面的所有文本,如果有的话。这样我就可以单击文本输入并开始输入,而不必清除当前值,假设我想覆盖文本输入中已经存在的内容。

我将如何使用 jQuery 做到这一点?

【问题讨论】:

  • 这不是大多数浏览器的默认行为吗?我刚刚用 FireFox、Opera 和 IE 进行了尝试,当我进入文本输入时,它们都会突出显示文本输入的内容。
  • 克里斯,对不起。看起来你是对的。我不记得是什么让我走上了追捕这条道路,但我太专注于搜索,以至于我忘记了……试试看:)
  • 啊,我想起来了。当您将鼠标移入输入字段时,该文本被选中。但您是对的,当您 tab 进入输入字段时,它 的默认行为。我将编辑帖子。

标签: jquery select text input


【解决方案1】:

Couple 的链接 here

$("#myInputField").focus(function(){
    // Select input field contents
    this.select();
});

// Add this behavior to all text fields
$("input[type=text]").focus(function(){
    // Select field contents
    this.select();
});

【讨论】:

    【解决方案2】:

    要仅选择文本,您可以执行以下操作:

    $(".inputs-to-which-you-want-to-apply-this-behavior").focus(function() {
      this.select();
    });
    

    另一种方法,它不选择文本,而是删除它(只有在你将框留空时才替换它,看起来像这样:

    $(document).ready(function() {
      $(".inputs-that-currently-have-a-default-value-in-them").each(function() {
        var original = $(this).val();
        $(this).focus(function() {
            if ($(this).val() == original)
              $(this).val('');
        });
    
        $(this).blur(function() {
          if ($(this).val() == '')
            $(this).val(original);
        });
      });
    });
    

    (如果框中的文本是“输入您的姓名”之类的占位符文本,我更喜欢后一种方法,但如果框中的内容是我上次输入的名称,那么您最初的想法只是选择文本肯定会更好。)

    【讨论】:

      【解决方案3】:

      根据我的测试,这是我使用的大多数浏览器的默认行为。

      虽然select() 函数做了其他人所说的那样。相反,我认为如果该字段获得焦点,则将输入字段的值设置为空白会起作用。

      类似:

      $(":input").focus = function(){if(this.type=="text"){value=""}return true};
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-08
        • 2023-04-04
        • 2010-10-04
        • 1970-01-01
        相关资源
        最近更新 更多