2013-05-29 100 views
0

我隐藏/显示基于选定复选框的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"); 
} 
相关问题