什么是香草JS或jQuery解决方案,将选择一个文本框的所有内容时,文本框接收焦点?
当前回答
这里的答案在某种程度上帮助了我,但当我在Chrome中单击向上/向下按钮时,我在HTML5数字输入字段上遇到了一个问题。
如果你点击其中一个按钮,并将鼠标放在按钮上,这个数字就会不断变化,就像你一直按住鼠标按钮一样,因为鼠标被扔掉了。
我通过删除mouseup处理程序来解决这个问题,一旦它被触发,如下所示:
$("input:number").focus(function () {
var $elem = $(this);
$elem.select().mouseup(function (e) {
e.preventDefault();
$elem.unbind(e.type);
});
});
希望这能在未来帮助到人们…
其他回答
我知道这里已经有很多答案了——但这一个到目前为止还没有找到;一个解决方案,也与ajax生成的内容:
$(function (){
$(document).on("focus", "input:text", function() {
$(this).select();
});
});
我的解决办法是使用暂停。看起来还行
$('input[type=text]').focus(function() {
var _this = this;
setTimeout(function() {
_this.select();
}, 10);
});
我有点晚了,但这在IE11, Chrome, Firefox中工作完美,没有混乱的鼠标(没有JQuery)。
inputElement.addEventListener("focus", function (e) {
var target = e.currentTarget;
if (target) {
target.select();
target.addEventListener("mouseup", function _tempoMouseUp(event) {
event.preventDefault();
target.removeEventListener("mouseup", _tempoMouseUp);
});
}
});
这个会有用的,试试这个
<input id="textField1" onfocus="this.select()" onmouseup="return false" />
可以在Safari/IE 9和Chrome上运行,但我没有机会在Firefox上测试。
这不仅仅是Chrome/Safari的问题,我在Firefox 18.0.1中也遇到了类似的问题。有趣的是,这不会发生在MSIE!这里的问题是第一个鼠标点击事件强制取消选择输入内容,所以忽略第一个事件。
$(':text').focus(function(){
$(this).one('mouseup', function(event){
event.preventDefault();
}).select();
});
timeOut方法会导致一种奇怪的行为,并且阻塞每个鼠标升起事件,您无法删除再次单击输入元素的选择。