window.getSelection (). toString () не работает на IE 11 - PullRequest
0 голосов
/ 27 мая 2020

У меня есть поле для ввода. Я хочу ограничить пользователей вводом не более десяти символов. Приведенный ниже код работает с 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;" />

1 Ответ

0 голосов
/ 27 мая 2020

$("#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;" />
...