javascript - window.getSelection().toString() 在 IE 11 上不起作用
问题描述
我有一个输入字段。我想限制用户最多输入十个字符。下面的代码适用于 Chrome,但不适用于 IE 11。我希望当有人突出显示文本时,他们应该能够替换它。在 IE11 中,当我突出显示文本时,我无法替换它,可能 getSelection().toString() 不起作用。
$('#demo').on('keydown', function(event) {
var selection = window.getSelection().toString();
alert(selection);
var value1 = document.getElementById("demo").value;
if (value1.length === 10 - selection && event.keyCode != 8) {
event.preventDefault();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input contenteditable="true" value="mm/dd/yyyy" id="demo" style="border:none;width:80px;" />
解决方案
$("#demo").keydown(function(event) {
var value = this.value;
// var sel = window.getSelection().toString();
var sel = value.substring(this.selectionStart, this.selectionEnd);
if (value.length === 10 - sel && event.keyCode != 8) {
event.preventDefault();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input contenteditable="true" value="mm/dd/yyyy" id="demo" style="border:none;width:80px;" />
推荐阅读
- asp.net-mvc - JWT 令牌通常对使用跨域有效吗?
- javascript - 正确使用 wp.data.subscribe
- r - 在 r 中,如何根据文件名将 X 个固定宽度的平面文件读入 Y 个数据帧?
- c# - WCF 图像服务正在锁定文件
- graph - 我们可以同时过滤多个标签吗
- jquery - Jquery UI 日期选择器空白
- python - Python,参数解析。-opt1 -part-of-opt1 怎么样
? - mailchimp - 如何使用 Mailchimp API 获取用户所属的所有列表?
- visio - Visio .vsdx 不需要的行为:为什么用户定义的形状值从 1.00E-7 被截断为 0.00E0?
- scala - sbt ivy2:从“编译”中找不到配置“主”