2013-08-07 3 views
6

Я думаю, что это здравый смысл, который обеспечивает простой способ скрыть/показать и включить/отключить кнопку, но я не могу найти какой-либо документ, который описывает dojo, сделал такую ​​вещь. В любом случае, я надеюсь, что это моя вина, что я пропустил что-то во время поиска, спасибо!Как скрыть кнопку dijit/form /?

Следующая кодировка, что я пытался, но они просто сделать текст этой кнопки невидимы:

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

UPDATE Вопрос:

Для oborden2:

Я попробовал ваш код, результат такой же, как приведенный выше код, вот захваченный экран:

enter image description here

Для MiBrock:

Я также попробовал ваш код, а также получить тот результат, который так же, как приведенный выше код: enter image description here

ответ

10

Виджеты формы в Диджите являются специальными. Для всех обычных виджетов Dijit domNode (внешний узел) виджета получает свойство id. Однако с видными виджетами focusNode (который соответствует элементу <input>) вместо этого получает идентификатор, так что такие вещи, как <label for="foo">, работают правильно. В этом случае внешний узел не имеет идентификатора, и вы фактически просто скрываете внутренний элемент ввода HTML.

Если у вас уже есть ссылки на виджет:

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

Если у вас есть только ссылка на идентификатор виджета/оригинального DOM узла:

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

Он работает! Спасибо за ваше объяснение. –

1

Try

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

переменная "DOMNode" остается для идентификатор узла, на который должно влиять. Так мы это делаем.

С уважением, Мириам

+0

Я обновил вопрос , благодаря! –

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

я представляю вы хотели бы связать это с каким-либо событием, используя on модуль додзё. Свяжите его с любым условием, которое вызывает необходимость нажатия кнопки.

+0

Я обновил вопрос, спасибо! –

+0

Я пробовал использовать Toggler, но на самом деле не скрываю кнопку. Это просто делает его прозрачным. Вы все равно можете нажать кнопку, наведя курсор на предыдущее местоположение и нажав на нее. Мне интересно, как вам удалось решить эту проблему? –

Смежные вопросы