我得到了“新用户表单”。有三个不同的层次clearence:Javascript无法隐藏一些DIV
- 客户
- clientContact
- clientRepresentative
还有一些领域,如NEWMAIL,newPostalCode等
下面是我的代码我用来显示一个元素:
function doShow(obj) {
document.getElementById(obj).style.display = '';
}
,我使用隐藏的元素代码:
function doHide(obj) {
document.getElementById(obj).style.display = 'none';
}
它适用于小数据块。创建用户时,将指定clearence级别,如果它是clientRepresentative,则显示相应的字段。 例如,客户端只有一个电子邮件地址,clientRepresentative有两个电子邮件地址,clientContact有三个。
但是这个不工作!。 如果我选择的客户端,有一个电子邮件,正如计划,但如果我选择clientContact,然后切换到clientRep代表冗余字段(电子邮件3)是不被隐藏。
我相信这是一个JavaScript问题,请帮助我,因为我的愤怒程度达到了天花板。
编辑: 我忘了粘贴功能用来显示/隐藏项目。
if (clearenceLevel != "Chose...") {
if (clearenceLevel == "client") {
doShow("newMail");
doHide("newMail2");
doHide("newMail3");
doShow("newNip");
doShow("newRegon");
doShow("newStreet");
doHide("newHeadquarters");
doShow("newAddress");
doShow("newPostalCode");
doShow("kptekst");
doShow("newCity");
doShow("newAccount");
doShow("newState");
doHide("newStatus");
doHide("newPassword");
} else if (clearenceLevel == "clientRepresentative") {
doShow("newMail");
doShow("newMail2");
doHide("newStatus");
doHide("newMail3");
doHide("newNip");
doHide("newRegon");
doHide("newStreet");
doHide("newHeadquarters");
doHide("newAddress");
doHide("newPostalCode");
doHide("newCity");
doHide("newAccount");
doHide("newState");
doHide("kptekst");
doShow("newPassword");
} else if (clearenceLevel == "clientContact") {
doShow("newMail");
doShow("newMail2");
doShow("newMail3");
doHide("newNip");
doHide("newRegon");
doHide("newStatus");
doHide("newStreet");
doHide("newHeadquarters");
doHide("newAddress");
doHide("newPostalCode");
doHide("newCity");
doHide("newAccount");
doHide("newState");
doHide("kptekst");
doHide("newPassword");
}
}
你在传递给doShow和doHide形式?它看起来应该是一个字符串(元素ID),但参数被称为“obj”。如果您确实传入了DOM元素对象,那么代码将无法工作。 – Douglas 2010-08-30 11:22:58
您是否100%确定每个ID在文档中只存在一次? – 2010-08-30 11:24:02
你确实需要一些适当的工具来调试这些东西,比如Firebug(在Firefox上)或者Fiddler(IE)。 – tdammers 2010-08-30 11:24:30