2010-09-22 1 views
2

Я пытаюсь получить значение ввода (text/textarea) и document.getElementById('rtext').value ничего не возвращает. Если я установил значение по умолчанию (value = "XXX"), оно вернет это значение, если я его отредактирую.document.GetElementById не работает ни в каком браузере

Вот некоторые примеры:

<div class="forms"> 
    <p><textarea id='rtext'></textarea></p> 
</div> 

Я упоминаю, что элемент формы <textarea> не является частью какой-либо форме, и я буду вынужден использовать только document.getElementById. Нет jQuery и нет this.form.Id.value

Пожалуйста, помогите. THX

+2

Может быть, вы могли бы разместить не только определение текстового поля, но яваскрипт фрагмента кода, который показывает ваш вызов к элементу а? –

ответ

1

Попробуйте поместить ваш фрагмент кода в конец вашего тега <body>. Вероятно, ваш javascript выполняет до загружен ваш элемент <textarea>.

Итак:

<html> 
<body> 
<div class="forms"> 
    <p><textarea id='rtext'></textarea></p> 
</div> 
<script type="text/javascript"> 
    var el = document.getElementById('rtext'); 
    alert(el); 
</script> 
</body> 
</html> 

(я опустил голову и другие теги, чтобы сохранить его компактный :)

2

Ну, это document.getElementById(), innit?

+0

Извините, я использую точку (.) Я только что отредактировал текст ... нет проблемы синтаксиса: D –

+0

@lucian: все еще проблема с корпусом, tho –

+0

@lucian: чтобы это исправить, getElementById начинается с нижнего регистра " г'. – Spudley

5

getElementById() (случай важен) является членом документа объекта. Чтобы вызвать функцию, вам нужно обратиться к объекту, а затем к функции. В точечной нотации, оно должно быть:

document.getElementById() 

document.getElementById() - MDC

Обратите внимание, что идентификаторы должны быть уникальными на странице и иметь другой элемент с тем же ID может быть причиной вашей проблемы.

+0

это уникально ... –

+2

@Lucain хорошо, тогда вам придется опубликовать свои фрагменты javascript, чтобы мы были более полезными – jrharshath

1

работает для меня:

<div class="forms"> 
     <p><textarea id='rtext'></textarea></p> 
    </div> 

    <input type = "button" 
      onclick = "alert(document.getElementById('rtext').value);" 
      value = "run" /> 

    <a  href = "javascript:void(0);" 
      onclick = "alert(document.getElementById('rtext').value)" 
     >GET</a> 

вещи, чтобы рассмотреть:

  • Убедитесь, что код вызывается; могут возникнуть ошибки в вашем JavaScript
  • Убедитесь, что идентификатор уникален для HTML/DOM, поскольку Andy E указал, хотя я думаю, что функция захватит первый найденный объект, если их несколько.
  • Убедитесь, что орфография/регистр верны; getElementById() и getElementByID() не та же функция
  • Убедитесь, что вы пытаетесь получить значение после того, как он заполняется с помощью правильного события (onkeyup против onkeypress)
+0

событие имеет место 'onclick' в GET

+1

Вы получаете 'rname' или' rtext'? Я думаю, вы должны опубликовать свой полный код на [pastebin] (http://www.pastebin.com) – vol7ron

0

Поскольку вы уже пробовали решения каждого и вы можете Не находите ошибку, я предлагаю вам попробовать отладить JavaScript в вашем браузере.

В IE8 (я не помню, имел ли он 7) ударил F12 и поднял панель инструментов разработчика. На вкладке сценария вы можете проверить свой javascript вручную в консоли или отладить его.

В FireFox использовать Firebug.

В Chrome нажмите Ctrl + Shift + J, консоль будет в нижней части экрана. Вы также можете отлаживать сценарии на вкладке скриптов.

+0

да ... Я пробовал, что ... нет ошибок javascript –

0

Если вы используете текстовый элемент внутри панели обновления, то Id визуализируется на странице больше нет rtext. Только если вы используете панель обновления. DO исходного вида коды для проверки, если идентификатор сохраняется в rtext

+1

Кто сказал что-нибудь о UpdatePanel? Ничто не помеченное здесь указывает, что это проблема .Net. –

1

Я решил проблему:

Я вставил тег формы, я изменил

<a href="javascript" 
    onclick="alert(document.getElementById('rname').value)">GET</a> 

с

<input type="button" 
    onclick="document.getElementById('rname').value=this.form.rname.value" />` 

Теперь он отлично работает.

1

Вы пробовали:

document.getElementById('rtext').textContent 
Смежные вопросы