首页 文章

HTML文本框输入 - 始终在单击时选择所有文本

提问于
浏览
1

如何在html文本输入中实现以下行为:当用户单击输入时,即使已经选择了所有文本,也将选中所有文本 . 因此,没有任何可能删除/选择某些字符 .

目前我有以下内容:

elm.on('click', function(e) {
    e.preventDefault();
    $(this).select();
});

但如果选择了文本,则单击会显示一个carret .

3 回答

  • 1

    这是一个有趣的!

    诀窍不是 click 事件上的 preventDefault() ,而是 mouseDown 事件 .

    $('#clickme').on('mousedown', function(e) {
      e = e || window.event;
      e.preventDefault();
      $(this).select();
    });
    

    这是working fiddlerelated question我得到了答案

  • 1

    因此,没有任何可能删除/选择某些字符 .

    为此,我建议在输入中使用 readonly

    <input readonly type="text" ...
    

    此外,如果您删除 e.preventDefault() ,它将继续保持选中状态 .

    看到这个小提琴:https://jsfiddle.net/dgryhdtL/

    更新

    有时,当您单击所选文本时,它将取消选择 . 要解决这个问题,您需要创建一个小延迟:

    var that = $(this);
    setTimeout(function(){
      that.select();
    }, 100);
    

    看到这个小提琴:https://jsfiddle.net/dgryhdtL/1/

  • 0

    这是简单的代码:

    $("input[type='text']").on("click", function () {
        //select the text in text field
        $(this).select();
    });
    

    Edit: 如果你的元素已经在 elm 变量中,那么你不需要编写jQuery选择器 . 您可以使用:

    elm.on("click", function () {
        //select the text in text field
        $(this).select();
    });
    

相关问题