我在Select all contents of textbox when it receives focus (JavaScript or jQuery)看到了剧本。
不幸的是,当试图为IE10实现它时,我得出的结论是,焦点也会在以后被清除,并且防止默认(对于基于WebKit的浏览器起作用)似乎根本不起作用。
我设法在IE10中使它正常运行,但是额外的布尔变量感觉有点脏。
(基本)html:
<div id="ContentDiv">
<input type="text" value="default" />
</div>
代码:
$(document).ready(initialize);
function initialize() {
var tmp;
$("#ContentDiv").on({
focus: function (e) {
//select for all browsers
$(this).select();
tmp = true;
},
mouseup: function (e) {
//reselect for IE10
if (tmp) {
this.select();
tmp = false;
}
//chrome still needs this
e.preventDefault();
}
}, "input:text");
}
示例:jsfiddle
我的问题:有没有人知道如何更清晰地解决这个焦点选择问题?
答案 0 :(得分:2)
所以,仅使用超时:
$(document).ready(initialize);
function initialize() {
$("#ContentDiv").on({
focus: function (e) {
setTimeout(function(){e.target.select();},0);
}
}, "input:text");
}
在firefox中似乎有点小问题。