2013-05-29 4 views
0

Я скрываю/показываю div на основе выбранного флажка.hide/show div после загрузки страницы и на основе флажка

<input type="checkbox" id="other" name="os[other]" value="6" onclick="toggle_form_element('os[other]')"> 

Вот мой Javascript Функция:

function toggle_form_element(id) { 
    if ((document.getElementsByName(id)[0].checked)) { 
     document.getElementById('sometimesHidden').style.display = 'block'; 
    } else { 
     document.getElementById('sometimesHidden').style.display = 'none'; 
    } 
} 

На данный момент это работает отлично. Но если я отправляю эти значения и сохраняю их на сеанс. Этот сеанс используется для установки флажка checked="checked" как это:

<input type="checkbox" id="other" name="os[other]" value="6" onclick="toggle_form_element('os[other]')" <?PHP if(!empty($_SESSION['register']['os']['other'])) echo "checked=\"checked\""; ?>> 

Так что, если я перезагрузка страницы, флажок уже установлен из-за имеющийся $_SESSION вара. Но скрытый div не виден. Итак, как я могу расширить функцию JS, чтобы она не только работала «onclick». Что я должен использовать, чтобы проверять это всегда?

ответ

1

Вы должны проверить состояние этого флажка на странице загрузки

<body onload="toggle_form_element(id);"> 

Или, если вы используете JQuery:

$(function() { 
    // This code executes when the page loads 
    toggle_form_element(id); 
}); 
+0

Как я могу это достичь? Использование функции готовности документа? – emjay

+0

$ (document) .ready (function() {}) – Baz1nga

+0

@ Blade0rz: Поэтому я должен использовать функцию onclick в поле для переключения при проверке/снятии флажка и вашем решении для переключения, если страница загружена? (Оба решения одновременно) – emjay

0

Вы должны вызвать toggle_form_element также при загрузке страницы, так использование и в вызове функции init toggle_form_element:

function init() { 
    toggle_form_element("other"); 
} 
Смежные вопросы