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

时间:2016-01-20 16:11:15

标签: javascript jquery html

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

目前我有以下内容:

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

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

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分:1)

这是一个有趣的!

诀窍不在preventDefault()事件的click,而是mouseDown事件。

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

这是一个working fiddlerelated question我从

得到了答案

答案 2 :(得分:0)

这是一个简单的代码:

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

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

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