2012-02-16 3 views
0

У меня есть JavaScript, работающий в IE, но не в Chrome и Firefox. Вот код:document.getElementById is null

<script type="text/javascript"> 
jQuery(document).ready(function() { 

jQuery('#applicationSelect').change(function() { 
document.getElementById('dropdown').value = "APPLICATION"; 
}); 

}); 
</script> 

<input type="hidden" name="dropdown" value="" /> 

Когда я смотрю в Firebug, код заблуждается:

document.getElementById("dropdown") is null 
document.getElementById('dropdown').value = "APPLICATION"; 

мне нужен ваш совет. Заранее спасибо.

+0

Я не вижу элемент с идентификатором «выпадающего списка». – Hadas

+0

У вас есть элемент с идентификатором «dropdown» в вашем html? –

+0

где вы указали тег с идентификатором 'dropdown' ?? –

ответ

3

Проблема в том, что ваш элемент input не имеет id! Изменение name в id, или добавить id тоже:

<input type="hidden" name="dropdown" id="dropdown" value="" /> 

В качестве альтернативы, если вы не хотите, чтобы добавить id, вы можете использовать getElementsByName (который doesn't work very well кросс-браузер), или вы можете использовать атрибут JQuery селектор:

$("input[name='dropdown']").val("APPLICATION"); 

Update

Я просто заметил, что вы сказали в своем вопросе что он работал в IE. Это означает, что вы должны использовать довольно старую версию IE, потому что getElementById в IE7 и ниже неправильно выбирает элементы по name, а также id.

+0

Большое спасибо Джеймсу, который работает для меня. – Jemru

+0

Да, я добавил идентификатор, и он сработал. еще раз спасибо. – Jemru

+0

Без проблем, рад, что я мог бы помочь :) –

5

Если вы используете JQuery, почему бы не использовать его, чтобы установить входное значение:

$('#dropdown').val('APPLICATION'); 

И как другие отметили, ваш вклад id-й не был «выпадающий».

Также обратите внимание, что в большинстве случаев использования можно использовать $ вместо jQuery.

+0

спасибо. Я новичок в jquery. – Jemru

+0

@ Jemru-Da: нет проблем :) jQuery очень * полезен, я уверен, вам понравится работать с ним! –

+0

jQuery * очень полезен, но это не значит, что он должен использоваться даже для самых простых задач (например, для изменения значения ввода). Когда это возможно, гораздо быстрее использовать собственные методы DOM. –

Смежные вопросы