[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: getElementById возвращает пустую строку
Litron
Доброго дня.
Есть скрипт формы, заключенного в div с id="popup_form".
Почему-то при нажатии на кнопку div (не в форме) с событием onClick="formOpenClose()" при первом клике из x.style.display возвращается пустая строка, а при остальных как и должно быть - none.
Гугление ничего не дало, может "свежий, натренированный" глаз что увидет - где ошибка закралась?
И можете объяснить почему когда я начал использовать на сайте js то при обновлении странички по F5 страница не прокручивается в начало, как это было изначально - без js?
function formOpenClose(){
var x = '';
x = document.getElementById('popup_form');
if(x.style.display == 'none' || x.style.display == ''){
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}

#popup_form{
display: none;
position: fixed;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background-color: rgba(0,0,0,0.5);
itfarms
Если хочешь сделать функцию, которая отображает или скрывает блок, то воспользуйся этой:

    function show_hide_Filter(element_id) {
if (document.getElementById(element_id)) {
var obj = document.getElementById(element_id);
if (obj.style.display != "block") {
obj.style.display = "block";

}
else
{
obj.style.display = "none";
}
}

else alert("Элемент с id: " + element_id + " не найден!");
}
walerus
Litron
У меня твой код работает без проблем, смотри в консоли что и куда присваивается...
Litron
itfarms
ну большой разницы я не увидел в сравнении с моим кодом. Только то, что не проверяется на none, ну так я проверяю на пустую строку.
walerus
А || x.style.display == '' убирал из кода? )) Я его вставил опытным путем, чтобы работало.Placido
Спасибо. Теперь все понятно. Теперь в нужных местах придется выносить стили в код.
walerus
Litron Вот так твоя функция будет работать, потому что "стиля" как такового у ID нет, он появляется только после срабатывания Click, т.е. после проверки функцией, вот по этому и приходилось 2ва раза прожимать. Ты проверяй "от обратного", тогда все хорошо.
function formOpenClose(){
var x = '';
x = document.getElementById('popup_form');
if(x.style.display != 'block'){
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.