2013-08-07 13 views
6

Penso che sia un buon senso fornire un modo semplice per nascondere/mostrare e abilitare/disabilitare un pulsante, ma non riesco a trovare alcun documento che descriva il dojo come tale. In ogni caso, spero che sia colpa mia se mi sono perso qualcosa mentre navigo su google, grazie!Come posso nascondere un pulsante di dijit/form /?

Il seguente codice è quello che ho provato, ma solo fare il testo del pulsante invisibile:

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

UPDATE Domanda:

Per oborden2:

Ho provato il codice, il risultato è lo stesso del codice sopra, ecco lo schermo catturato:

enter image description here

Per MiBrock:

Ho anche provato il codice e anche ottenere il risultato che corrisponde al codice di cui sopra: enter image description here

risposta

10

I widget di forma in Dijit sono speciali. Per tutti i normali widget Dijit, il domNode (nodo più esterno) del widget riceve la proprietà id. Tuttavia, con i widget del modulo, lo focusNode (che corrisponde all'elemento <input>) riceve invece l'ID, in modo che le cose come <label for="foo"> funzionino correttamente. In questo caso, il nodo più esterno non ha ID e in realtà stai solo nascondendo l'elemento di input HTML interno.

Se si dispone già di riferimento al widget:

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

Se avete solo un riferimento al ID del widget/nodo DOM originale:

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

Funziona! Grazie per la tua spiegazione. –

1

Prova

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

La variabile "DOMNode" rimane per l'id del nodo che dovrebbe essere influenzato. Questo è il modo in cui lo facciamo.

saluti, Miriam

+0

Ho aggiornato la questione , Grazie! –

0

provare a utilizzare il modulo di 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

immagino che si vorrebbe collegare questo a qualche evento utilizzando il modulo di Dojo on. Collegalo a qualsiasi condizione per attivare la necessità di nascondere il pulsante.

+0

Ho aggiornato la domanda, grazie! –

+0

Ho fatto qualche test usando Toggler, ma in realtà non nascondo il pulsante. Rende solo trasparente. Puoi ancora fare clic sul pulsante passando con il mouse sulla sua posizione precedente e facendo clic su di esso. Sono interessato a come sei riuscito a risolvere questo problema? –

Problemi correlati