Javascript 无法隐藏某些 DIV

标签 javascript html field

我收到了“新用户表单”。共有三种不同的间隙级别:

  • 客户
  • 客户联系方式
  • 客户代表

还有一些字段,例如 newMail、newPostalCode 等。

这是我用来显示元素的代码:

function doShow(obj) {
                    document.getElementById(obj).style.display = '';
                }

以及我用来隐藏元素的代码:

function doHide(obj) {
                    document.getElementById(obj).style.display = 'none';
                }

它适用于小数据 block 。创建用户时,会指定许可级别,如果是 clientRepresentative,则会显示相应的字段。 例如,client 只有一个电子邮件地址,clientRepresentative 有两个电子邮件地址,clientContact 有三个电子邮件地址。

但这不起作用!。 如果我选择 client,则会有一封电子邮件,正如计划的那样,但如果我选择 clientContact,然后切换到 clientRepresentative,则冗余字段 (e-mail3) 不会被隐藏

我相信这是一个 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");
                        }
                    }

最佳答案

不是对您的问题的直接回答,而是关于如何改进您的做法的建议。不必列出每个用户级别要显示和隐藏的每个属性,而是执行以下操作:

<input type="text" name="email" class="client representative contact">
<input type="text" name="ssn" class="representative">

然后,当用户级别更改时,隐藏所有内容,然后取消隐藏具有正确级别的所有内容。因此,在我的示例中,“电子邮件”可供“客户”、“代表”和“联系人”使用。因此,如果他们切换到任何级别,都会显示此字段,但“ssn”仅适用于“代表”,因此不会为其他任何人显示。

这样做的优点是能够轻松添加全新项目,无需修改 JavaScript,只需修改 HTML。

if (clearenceLevel != "Chose...") {
                    hideAll();
                    if (clearenceLevel == "client") {
                        doShow("client");
                    } else if (clearenceLevel == "clientRepresentative") {
                        doShow("representative");
                    } else if (clearenceLevel == "clientContact") {
                        doShow("contact");
                    }
 }

关于Javascript 无法隐藏某些 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599843/

相关文章:

arrays - Sequelize - 在数组列中查找项目

javascript - ajax 哈希导航无法正常工作

javascript - 在 Ember 中添加新元素到 DOM

html - 位置固定div,动态高度,ul中图片对齐

php - 打印表中的字段名称

sorting - 多个 solr 服务器实例上的 solr.RandomSortField

javascript 函数在其他文件中不起作用

javascript - 如何通过 javascript 删除 &nbsp

html - Bootstrap 跨越空白区域

html - 设计第四级菜单项不起作用