Текстовая область не редактируется (не только для чтения) в IE - PullRequest
2 голосов
/ 21 марта 2012

Минимальный код, который воспроизводит проблему, выглядит следующим образом:

<div class="cell">
  <input type="text" size=1>
  <textarea style="display:none;"></textarea>
</div>
<script type="text/javascript">
  $('.cell input').focusin(function() {
    $(this).hide();
    $('.cell textarea').show().focus();
  });
</script>

Когда щелкает элемент ввода, он должен быть скрыт, а текстовая область должна отображаться и фокусироваться.Это работает нормально, но только в IE (даже в IE9) текстовая область ведет себя как только для чтения, хотя она является фокусируемой и атрибут readonly не установлен.При повторном щелчке по текстовой области он становится редактируемым.

Также я попытался select() вместо focus(), как предложено в IE только для чтения текстовой области , но нет разницы в результате.1010 *

Чего мне не хватает?

1 Ответ

4 голосов
/ 21 марта 2012

По какой-то причине, если вы сразу сфокусируете это, вы не сможете набрать его.Но, если вы немного подождете, прежде чем сфокусироваться, это сработает.Если вы фокусируете его внутри setTimeout(func, 0), он работает.

Использование 0 в качестве аргументов в миллисекундах в setTimeout в основном толкает функцию к нижней части стека вызовов, а иногда это исправляет вещи.Не совсем уверен, почему.

РЕДАКТИРОВАТЬ: Этот вопрос объясняет, почему это работает: Почему setTimeout (fn, 0) иногда бывает полезным?*http://jsfiddle.net/aUDJn/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...