Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript无法隐藏某些div_Javascript_Html_Field - Fatal编程技术网

Javascript无法隐藏某些div

Javascript无法隐藏某些div,javascript,html,field,Javascript,Html,Field,我得到了“新用户表单”。有三种不同的清晰度级别: 客户 客户联系人 clientRepresentative 还有一些字段,如newMail、newPostalCode等 下面是我用来显示元素的代码: function doShow(obj) { document.getElementById(obj).style.display = ''; } function doHide(obj) {

我得到了“新用户表单”。有三种不同的清晰度级别:

  • 客户
  • 客户联系人
  • clientRepresentative
还有一些字段,如newMail、newPostalCode等

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

function doShow(obj) {
                    document.getElementById(obj).style.display = '';
                }
function doHide(obj) {
                    document.getElementById(obj).style.display = 'none';
                }
以及我用来隐藏元素的代码:

function doShow(obj) {
                    document.getElementById(obj).style.display = '';
                }
function doHide(obj) {
                    document.getElementById(obj).style.display = 'none';
                }
它适用于小数据块。在创建用户时,会指定清除级别,如果它是clientRepresentative,则会显示相应的字段。 在示例中,客户端只有一个电子邮件地址,ClientPresentative有两个电子邮件地址,clientContact有三个

但是这个不起作用。 如果我选择客户端,则会有一封电子邮件,正如计划的那样,但如果我选择clientContact,然后切换到clientRepresentative,则冗余字段(电子邮件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");
                        }
                    }

您可能在代码中犯了错误

else if(clearenceLevel==“clientRepresentative”){
doShow(“newMail”);
doShow(“newMail2”);
doHide(“newStatus”);
doShow(“newMail3”);//这不是doHide()吗?
//etc


从您的消息中,我了解到您希望在切换到clientRepresentative时隐藏电子邮件3,但在上面的代码中,doShow()被执行,而不是doHide().

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

<input type="text" name="email" class="client representative contact">
<input type="text" name="ssn" class="representative">
谢谢你的回答, 我正在张贴用于发送数据的表格

  echo '<div id="newMail"><br><font color="red">*</font>email: <input type="text" name="newMail" value="' . $_POST['newMail'] . '" /> </div>';
    echo '<div id="newMail2"><br>email 2: <input type="text" name="newMail2"  value="' . $_POST['newMail2'] . '" /> </div>';
    echo '<div id="newMail3"><br>email 3: <input type="text" name="newMail3"   value="' . $_POST['newMail3'] . '" /> </div>';
    echo '<div id="newNip"><br>nip: <input type="text" maxlength="15" name="newNip" value="' . $_GET['nip'] . '"/> </div>';
    echo '<div id="newRegon"><br>regon: <input type="text" name="newRegon"  value="' . $_POST['newRegon'] . '" /> </div>';
    echo '<div id="newStreet"><br>Street: <input type="text" name="newStreet" value="' . $_POST['newStreet'] . '" /> </div>';
    echo '<div id="newHeadquarters"><br>Headquarters: <select name="newHeadquarters"> ';
echo'
*电子邮件:'; 回送“
电子邮件2:”; 回送“
电子邮件3:”; 回音“
nip:”; 回声“
regon:”; 回音“
街:”; 回音“
总部:”;
您将向doShow和doHide传递什么?它看起来应该是字符串(元素id),但参数名为“obj”。如果您确实传递了DOM元素对象,那么代码将无法工作。您是否100%确定文档中每个id只存在一次?您真的需要一些适当的工具来调试这些东西,如Firebug(在Firefox上)或Fiddler(IE)。两个可能的问题:1.您是否使用Firebug进行调试?可能是您的魔法字符串有输入错误吗?2.事件触发:检查执行所有这些显示和隐藏操作的函数是否真的被调用。采取相同的方法:使用Firebug进行调试。问题在于doShow(“newState”);Firebug显示它在这一点上崩溃了,因为……我的表格中没有这样的字段!非常感谢你们,你们让我开心!你们说得对,应该是doHide(),但它并没有改变任何事情,因为当选择ClientRepresentation时,newMail3字段仍然可见;/有趣的是,如果我选择ClientRepresentation,然后选择client,冗余字段被隐藏。你没有关闭代码中的最后一个div。这是一个打字错误还是一个疏忽?这只是一个疏忽,我隐藏了ch不存在。Javascript代码正在崩溃。谢谢你的努力。好主意,我将以这种方式采用我的代码。谢谢你的建议。