我有简单的代码:
<input id="thisInput" class="MyInput"
maxlength="3"
value=" 0"
type="text" />
和 JS 代码:
$("#thisInput").on( "click", function() {
$(this).select();
});
在 Chrome 中这段代码。第一次单击选择输入中的所有值。另一个点击结束时没有选择 在 IE11 中,每次单击都会选择输入中的所有文本。
我的代码有点错误?或者 Chrome 或 IE 被窃听了? JSFIDDLe
最佳答案
喜欢@Jai commented ,这是 Chrome 的行为。就我个人而言,我不认为这是 Chrome 或 IE 的错误。
始终选择文本
如果您希望始终从输入中选择文本,您可以通过异步调用来欺骗它:
$("#thisInput").on("click", function() {
setTimeout(function() {
$(this).select();
}.bind(this), 0);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="thisInput" class="MyInput" maxlength="3" value=" 0" type="text" />
切换选择
嗯,我看到的最好的解决方案是使用标志并切换它:
var select = false;
$("#thisInput").on("click", function() {
if (select = !select) {
$(this).select();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="thisInput" class="MyInput" maxlength="3" value=" 0" type="text" />
关于javascript - Jquery 选择行为在 IE 上有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628313/