JavaScript не получает значение поля ввода - PullRequest
1 голос
/ 20 апреля 2011

Кажется, у меня проблемы с передачей значения поля ввода чему-либо еще в моем JavaScript. Он не выдает никаких ошибок - и я помню, как где-то читал, что у вас могут возникнуть проблемы, если документ еще не загружен, - но я уверен, что он есть!

Данный код в javascript выглядит следующим образом:

var address = getElementById(addyInput).value;
document.getElementById('add').innerHTML = address;

и в HTML

<form>
<input name="addyInput" placeholder="Don't forget postcode!">
</form>

<button id="start" onclick="initialize()">Start!</button>

<p>Address Test
<div id="add"></div>
</p>

Я знаю, что сама кнопка работает, так как она прекрасно запускает остальную часть моего кода без кода, вызывающего неприятные ощущения - однако в тот момент, когда я раскомментирую этот маленький блок сверху, он просто ничего не делает. (без ошибок и т. д.)

Любая помощь по этому вопросу будет горячей! Спасибо:)

Обновление:

Теперь у меня это работает! Большое спасибо за помощь !!

Ответы [ 5 ]

3 голосов
/ 20 апреля 2011

Ваша форма должна выглядеть следующим образом (добавьте атрибут id):

<form>
<input id="addyInput" name="addyInput" placeholder="Don't forget postcode!">
</form>

И первая строка Javascript должна выглядеть следующим образом (поскольку getElementById ожидает идентификатор, а не имя).

var address = getElementById('addyInput').value;

Кроме того, getElementById ожидает, что аргумент id будет строкой (отсюда и кавычки). Если вы передадите ему addyInput без кавычек, он попытается интерпретировать addyInput как переменную со значением undefined, и вы не получите нужный элемент DOM.


Или, если вы используете jQuery , вы можете оставить разметку формы как есть и изменить Javascript следующим образом:

var address = $('input[name=addyInput]').val();
2 голосов
/ 20 апреля 2011

Обязательно укажите и id на входе.У вас есть только name.

0 голосов
/ 22 мая 2013

то, что вы получаете - это массив, вам нужно извлечь ваш массив в некоторые читаемые данные. Попробуйте что-то вроде:

  • $value = array_shift( $yourarray );

или, если это массив с несколькими значениями, вы можете просто зациклить его для извлечения значений.

0 голосов
/ 20 апреля 2011

getElementById ожидает строку.

var address = getElementById('addyInput').value;

Если вы поместите это непосредственно в раздел скрипта в заголовке, у вас будет проблема, потому что страница загружается не полностью,код уже выполнен.

И, конечно, вы должны определить идентификатор для элемента ввода, как уже сказали другие.

0 голосов
/ 20 апреля 2011

Вам нужно добавить идентификатор "addyInput" к вашему вводу формы, а не просто имя.

...