繁体   English   中英

用javascript显示隐藏的div

[英]show hidden div with javascript

我有以下内容:

var test = dojo.byId("clientDivision");
test.style.display = 'block';

在作为select的“onChange”的一部分调用的函数中。

这是我要显示的div:

<tr id="divisionInputRow" name="divisionInputRow">
<div id="clientDivisionDiv" >
    <td><label>Org:</label></td>
    <td name="inputDivisionCell" id="inputDivisionCell" class="inputData">

        <div dojoType="customdojo.stores.QueryReadStore" jsId="divisionStore"
        queryTable="" url="/SkillsDB/autocomplete/buildClientDivisionList"
        requestMethod="post"></div>
        <select id="clientDivision" name="clientDivision.name" style ="display:none"
            value="${project?.clientDivision?.encodeAsHTML()}"
            dojoType="dijit.form.ComboBox" pageSize="15"
            onChange="setCbHiddenId(this, 'clientDivision.id')"
            required="true"
            invalidMessage="Invalid Client Division"
            promptMessage="Enter client division for this project">
        </select>
        <input type="hidden" id="clientDivision.id" name="clientDivision.id" value='${project?.clientDivision?.id}' />          
    </td>
</div>
</tr>

所以你可以看到,有一个选择

 <select id="clientDivision" name="clientDivision.name" style ="display:none"

我明确地将样式设置为“display:none”,以便在页面加载时隐藏它,我只想在事件发生后取消隐藏它。

但是,函数中的代码似乎没有做任何事情。

谢谢

当dojo解析您的文档时, <select>会变成几个标记,看起来像这样:

<div widgetid="clientDivision" style="display: none;" id="widget_clientDivision" role="combobox">
  <div class="dijitReset dijitRight dijitButtonNode dijitArrowButton ...>
    <input class="dijitReset dijitInputField dijitArrowButtonInner" ...>
  </div>
  ...
  <div class="dijitReset dijitInputField dijitInputContainer">
    <input value="${project?.clientDivision?.encodeAsHTML()}" id="clientDivision"
        name="clientDivision.name" type="text">
  </div>
</div>

请注意,ID为“clientDivision”的DOM节点现在隐藏在标记汤的深处。 这就是隐藏/取消隐藏它没有意义的原因。

你的组合框在这一点上是一个小部件,因此将它视为一个DOM节点(即使它在技术上仍然由DOM节点组成)也不起作用。

您可以隐藏窗口小部件的最外层DOM节点,如下所示:

dijit.byId("clientDivision").domNode.style.display = "none";

请注意,您必须使用dijit.byId (不是dojo.byId,它仅用于DOM节点,而不是小部件),并且您必须使用其domNode成员(这是dijit的最外层DOM节点)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM