Как найти / обнаружить любую текстовую область на странице в JavaScript - PullRequest
1 голос
/ 04 января 2010

(document.getElementById ('textarea'). Length> 0) не работает. Кто-нибудь знает что-нибудь еще, кроме этого?

Будет

Вот сценарий из моего предыдущего вопроса, который остался без ответа. У меня есть Rich Text Editor (Openwysiwyg), который загружается в textarea, когда я перехожу на ту страницу, где размещается textarea. Функция использует идентификатор textarea, чтобы идентифицировать textarea, чтобы заменить его Rich Text Editor (RTE). Теперь скрипт для вызова этой функции находится в заголовочной части страницы. Я выбираю раскрывающийся список для отправки электронной почты, поэтому моя текстовая область для электронной почты отображается. С этим сценарием, добавленным для RTE, моя текстовая область для электронной почты заменяется RTE, и я могу отправлять отформатированные электронные письма. Так что это отлично работает в Firefox. В IE7 RTE отображается еще до того, как я выбрал опцию раскрывающегося списка для электронной почты, и это делает всю страницу испорченной. Когда я выбираю опцию раскрывающегося списка для электронной почты, я просто вижу обычную текстовую область, а RTE все еще находится вверху страницы.

Ответы [ 4 ]

9 голосов
/ 04 января 2010

document.getElementsByTagName ('textarea'). Длина> 0

1 голос
/ 01 февраля 2017

Чистый JavaScript (Вы можете использовать этот код)

textarea - это тег элемента HTML

JavaScript:

if(document.getElementsByTagName('textarea').length > 0) {

}

HTML-код:

<div class="flavor">

  <div class="value">

    <textarea name="name" rows="8" cols="80"></textarea>

  </div>

</div>

<script type="text/javascript">

  var flavorbox = document.getElementsByClassName('flavor')[0]  
                          .getElementsByClassName('value')[0]
                          .getElementsByTagName('textarea').length;

  alert(flavorbox);

</script> 
1 голос
/ 04 января 2010

Вы можете использовать (обратите внимание на форму множественного числа!)

var e = document.getElementsByTagName("textarea");

Вы также можете использовать jQuery:

$("textarea").each( function() { /* ... */ } );

EDIT: Однажды я столкнулся с подобной проблемой. Я использовал fckedit, и когда я попытался прочитать значение моего textedit (document.getElementById('blabla').value), я получил нулевое значение, даже несмотря на то, что редактирование расширенного текста не всегда показывало что-то на экране.

Оказывается, API fckedit открывает новый элемент поверх текстовой области, и только когда вы переходите со страницы, синхронизирует свои внутренние данные (которые находятся в iframe, если я не ошибаюсь) с исходной текстовой областью. ,

Мораль этой истории: если вы используете какой-то richtext API - используйте его для запроса статуса вашего "текстового поля". Надеюсь, это поможет вам, поскольку я не знаю, какую библиотеку вы используете.

PS: На самом деле я использовал $("blabla").val() ... который также является JavaScript ... по некоторым причинам люди думают, что jQuery не является javascript. Почему это?

0 голосов
/ 26 августа 2010

Поскольку openWYSIWYG генерирует iframe на лету, получить / установить его содержимое не так просто.

В настоящее время я работаю над изменением этих настроек в источнике. опубликую здесь ссылку, как только я получу изменения.

...