функция val() и текст() для textarea



Я использую jQuery и задаюсь вопросом, следует ли использовать val() или text() (или другой метод) для чтения и обновления содержимого текстового поля.



Я пробовал оба, и у меня были проблемы с обоими. Когда я использую text() для обновления textarea, разрывы строк (n) не работают. Когда я использую val() для извлечения содержимого textarea, текст усекается, если он слишком длинный.

576   3  

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 test

The 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

    Ничего не найдено.