如何隐藏dijit /表单/按钮?

时间:2013-08-07 07:05:04

标签: dojo

我认为提供隐藏/显示和启用/禁用按钮的简单方法是常识,但我找不到任何描述dojo的文档已经完成了这样的事情。 无论如何,我希望在谷歌搜索时错过了一些东西是我的错,谢谢!

以下编码是我尝试过的,但它们只是使按钮的文本不可见:

dojo.style(btnInsert, {'visibility':'hidden'});
dojo.style(btnInsert, {'display':'none'});

更新问题:

oborden2:

我已经尝试过您的代码,结果与上面的代码相同,这里是捕获的屏幕:

enter image description here

致MiBrock:

我也尝试过你的代码,并得到与上面代码相​​同的结果: enter image description here

3 个答案:

答案 0 :(得分:10)

Dijit中的表单小部件很特别。对于所有正常的Dijit小部件,小部件的domNode(最外面的节点)接收id属性。但是,对于表单小部件,focusNode(对应于<input>元素)会接收ID,因此<label for="foo">之类的内容可以正常工作。在这种情况下,最外面的节点没有ID,你实际上只是隐藏了内部HTML输入元素。

如果您已经引用了小部件:

require([ 'dojo/dom-style' ], function (domStyle) {
    domStyle.set(widget.domNode, 'display', 'none');
});

如果您只引用窗口小部件/原始DOM节点的ID:

require([ 'dojo/dom-style', 'dijit/registry' ], function (domStyle, registry) {
    domStyle.set(registry.byId(nodeId).domNode, 'display', 'none');
});

答案 1 :(得分:1)

尝试

require(["dojo/dom-style","dojo/domReady!"], function(domStyle){
    domStyle.set(dojo.byId(domNode),'display','none');
});

变量“domNode”保留应该受影响的节点的id。这就是我们制作它的方式。

此致,Miriam

答案 2 :(得分:0)

尝试使用Toggler模块

require(["dojo/fx/Toggler"], function(Toggler),{
    // Create a new Toggler with default options
    var toggler = new Toggler({
        node: "btnInsert"
    });

    // Hide the node
    toggler.hide();

    // Show the node
    toggler.show();
});

http://dojotoolkit.org/reference-guide/1.9/dojo/fx/Toggler.html

我想你会想要使用Dojo的on模块将其链接到某个事件。将其链接到任何条件触发按钮需要隐藏。