Zemljoradnik
Zemljoradnik

Reputation: 2692

Get value of checkbox in dojo, with on() method

Using dojo 1.9, I'm trying to access the value of a checkbox not like in the example in the docs:

require(["dijit/form/CheckBox", "dojo/domReady!"], function(CheckBox){ 
    var checkBox = new CheckBox({ 
        name: "checkBox", 
        value: "agreed", 
        checked: false, 
        onChange: function(b){ alert('onChange called with parameter = ' + b + ', and     widget value = ' + this.get('value') ); } 
    }, "checkBox"); 
}); 

but by moving onChange event to:

query('#checkBox').on('change', function(){ 
    var value = query(this).attr('value'); 
}); 

or anything similar. I just want to access it from on() method. But I get the same value every time - checkbox is checked. Any ideas?

Upvotes: 0

Views: 6209

Answers (2)

vivek_nk
vivek_nk

Reputation: 1600

dojo/query returns plain dom Nodes of the widgets, and therefore, we cannot attach the "on" event handler, directly to the query result. As you have said, we can use registry.byId(...)

In addition, let me give a suggestion, where the query would return more number of dom nodes.

array.forEach(dojo.query('.classname'),function(node){
  dijit.getEnclosingWidget(node).on('change',function(){
    var value = this.value;
    console.info(value);
  });
});

dijit.getEnclosingWidget(domNode) - will give the immediate parent widget node of the mentioned 'domNode'

Upvotes: 0

Zemljoradnik
Zemljoradnik

Reputation: 2692

And again I made the same mistake - it should be

registry.byId('checkBox').on('change', function(){ 
    var value = this.value; 
});

Upvotes: 2

Related Questions