2013-08-07 11 views
6

Myślę, że rozsądnym rozwiązaniem jest zapewnienie prostego sposobu ukrywania/pokazywania i włączania/wyłączania przycisku, ale nie mogę znaleźć żadnego dokumentu opisującego dojo. W każdym razie, mam nadzieję, że to moja wina, że ​​przegapiłem coś podczas googlowania, dzięki!Jak mogę ukryć dijit/formularz/przycisk?

Poniższy kodowanie jest to, co próbowałem, ale po prostu uczynić tekst przycisku jest niewidoczny:

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

UPDATE Pytanie:

Aby oborden2:

Próbowałem swój kod, wynik jest taki sam jak powyższy kod, tutaj jest przechwycony ekran:

enter image description here

Aby MiBrock:

Próbowałem również swój kod, a także uzyskać wynik, który sam jak powyższy kod: enter image description here

Odpowiedz

10

Widżety formularzy w Dijit są specjalne. Dla wszystkich zwykłych widgetów Dijit, domNode (najbardziej zewnętrzny węzeł) widgetu otrzymuje właściwość id. Jednak w przypadku widżetów formularzy, focusNode (który odpowiada elementowi <input>) otrzymuje zamiast tego ID, dzięki czemu rzeczy takie jak <label for="foo"> działają poprawnie. W tym przypadku najbardziej oddalony węzeł nie ma identyfikatora, a Ty po prostu ukrywasz wewnętrzny element wejściowy HTML.

Jeśli masz już odwołanie do widgetu:

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

Jeśli masz tylko odniesienie do ID widget/oryginalnego węzła DOM:

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

To działa! Dziękuję za wyjaśnienie. –

1

Spróbuj

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

Zmienna "DOMNode" pozostaje dla id węzła, na który należy wpływać. Tak to robimy.

Pozdrawiam Miriam

+0

mam zaktualizowanego pytanie , dzięki! –

0

spróbuj użyć modułu 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

sobie wyobrazić, że chcesz połączyć to do jakiegoś zdarzenia, używając modułu dojo za on. Połącz go z dowolnym warunkiem, który powoduje, że przycisk musi być ukryty.

+0

Mam zaktualizowane pytanie, dzięki! –

+0

Zrobiłem test używając Toggler, ale tak naprawdę nie ukryłem przycisku. Po prostu czyni to przezroczystym. Nadal możesz kliknąć przycisk, umieszczając kursor na jego poprzedniej lokalizacji i klikając go. Interesuje mnie, jak udało Ci się rozwiązać ten problem? –