Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 200
  • Last Modified:

NaN as value of ComboBox results

I want to calculate the sum of the selected value of ComboBox cb1 and cb2.
It seems that the result is a txt variable and not a Number. And that's the problem.
The result must be a 'Number'value and not a textvalue!
I've changed the result value with int(), Number(),.. etc without success...

// create 3 combobox with the names: cb1, cb2
 
var cb_1_count:Number=0;
var cb_2_count:Number=0;
var total:Number=0;
 
for (var i:Number=1; i<=5; i++){cb1.addItem({data:[i], label:[i]});}
for (var i:Number=1; i<=3; i++){cb2.addItem({data:[i], label:[i]});}
					
var cb1Listener:Object = cb1;
cb1Listener.change = function(event_obj:Object) {
	cb_1_count = (event_obj.target.selectedItem.data);
	calculateIt();}
cb1.addEventListener("change", cb1Listener);
 
var cb2Listener:Object = cb2;
cb2Listener.change = function(event_obj:Object) {
	cb_2_count = (event_obj.target.selectedItem.data);
	calculateIt();}
cb2.addEventListener("change", cb2Listener);
 
function calculateIt() {
	total = Number(cb_1_count) + Number(cb_2_count)
	trace (total); // MUST BE NUMERIC!
	}

Open in new window

0
1pc
Asked:
1pc
1 Solution
 
Aneesh ChopraCommented:
Problem in your code is data population code
//--------------------
for (var i:Number=1; i<=5; i++){cb1.addItem({data:[i], label:[i]});}
for (var i:Number=1; i<=3; i++){cb2.addItem({data:[i], label:[i]});}
//--------------------

it should have been as following:
//--------------------
for (var i:Number=1; i<=5; i++){cb1.addItem({data:i, label:i});}
for (var i:Number=1; i<=3; i++){cb2.addItem({data:i, label:i});}
//--------------------



below is the complete fixed code which works fine:
// create 3 combobox with the names: cb1, cb2
 
var cb_1_count:Number = 0;
var cb_2_count:Number = 0;
var total:Number = 0;
 
for (var i:Number = 1; i<=5; i++) {
	cb1.addItem({data:i, label:i});
}
for (var i:Number = 1; i<=3; i++) {
	cb2.addItem({data:i, label:i});
}
var cb1Listener:Object = cb1;
cb1Listener.change = function(event_obj:Object) {
	cb_1_count = (event_obj.target.selectedItem.data);
	calculateIt();
};
cb1.addEventListener("change",cb1Listener);
 
var cb2Listener:Object = cb2;
cb2Listener.change = function(event_obj:Object) {
	cb_2_count = (event_obj.target.selectedItem.data);
	calculateIt();
};
cb2.addEventListener("change",cb2Listener);
 
function calculateIt() {
	total = Number(cb_1_count)+Number(cb_2_count);
	trace(total);// MUST BE NUMERIC!
}

Open in new window

0
 
aherpsCommented:
Try using parseInt()
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now