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;" />

最新更新