如何在html文本输入中实现以下行为:当用户点击输入时,即使已经选择了所有文本,也会选择所有文本。因此,不可能删除/选择某些字符。
目前我有以下内容:
elm.on('click', function(e) {
e.preventDefault();
$(this).select();
});
但是如果选择了文本,则单击会显示一个carret。
答案 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();
});
得到了答案
答案 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();
});