Solved

# NaN as value of ComboBox results

Posted on 2008-11-16
195 Views
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();}

var cb2Listener:Object = cb2;

cb2Listener.change = function(event_obj:Object) {

cb_2_count = (event_obj.target.selectedItem.data);

calculateIt();}

function calculateIt() {

total = Number(cb_1_count) + Number(cb_2_count)

trace (total); // MUST BE NUMERIC!

}
``````
0
Question by:1pc

LVL 34

Accepted Solution

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++) {

}

for (var i:Number = 1; i<=3; i++) {

}

var cb1Listener:Object = cb1;

cb1Listener.change = function(event_obj:Object) {

cb_1_count = (event_obj.target.selectedItem.data);

calculateIt();

};

var cb2Listener:Object = cb2;

cb2Listener.change = function(event_obj:Object) {

cb_2_count = (event_obj.target.selectedItem.data);

calculateIt();

};

function calculateIt() {

total = Number(cb_1_count)+Number(cb_2_count);

trace(total);// MUST BE NUMERIC!

}
``````
0

LVL 7

Expert Comment

Try using parseInt()
0

## Featured Post

Sometimes you know that one object has a specific child in it, but you can't find the child. This happened to me when I was trying to code some actionScript to make a toolbar work with its embedded buttons.  My partner had created the toolbar usi…
The last time I worked with Flash and Socket connections was in AS1. A recent project required flash connecting to a Socket, and sending receiving information - we figured it would be easy enough - we all know about the socket policy documents and c…
The goal of the tutorial is to teach the user how to how to record live broadcast.
The goal of the tutorial is to teach the user how to select the video input device. Make sure you have an input device that in connected and work and recognized by Adobe Flash Media Live Encoder and select it in the “video input” menu.