функция val() и текст() для textarea
Я использую jQuery и задаюсь вопросом, следует ли использовать val() или text() (или другой метод) для чтения и обновления содержимого текстового поля.
Я пробовал оба, и у меня были проблемы с обоими. Когда я использую text() для обновления textarea, разрывы строк (n) не работают. Когда я использую val() для извлечения содержимого textarea, текст усекается, если он слишком длинный.
3 ответов:
лучший способ установить / получить значение textarea является
.val(),.valueметод.
.text()внутренне использует.textContent(или.innerTextдля IE) метод, чтобы получить содержимое<textarea>. Следующие тестовые примеры иллюстрируют, какtext()и.val()относятся друг к другу:var t = '<textarea>'; console.log($(t).text('test').val()); // Prints test console.log($(t).val('too').text('test').val()); // Prints too console.log($(t).val('too').text()); // Prints nothing console.log($(t).text('test').val('too').val()); // Prints too console.log($(t).text('test').val('too').text()); // Prints testThe
valueсвойства, используется.val()всегда показывает текущее значение visible, тогда какtext()возвращаемое значение может быть неверным.
.val()всегда работает сtextareaэлементы.
.text()работает иногда и терпит неудачу в других случаях! Это не надежно (проверено в Chrome 33)что лучше всего это
.val()работает без проблем с другими элементами формы тоже (какinput), а.text()не удается.
выберите
<textarea>по имени атрибута вместо id.<textarea id="message" name="message"></textarea> <script> jQuery("textarea[name='message']").val(); </script>
Comments