O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

11.6. Detecting the Selected Menu Items

Problem

You want to get the user-selected value(s) from a menu.

Solution

Use getSelectedItem( ) (for both combo boxes and list boxes) or getSelectedItems( ) (for list boxes only).

Discussion

You can use the getSelectedItem( ) method to get the selected value from a menu. The method returns an object with a label and a data property, representing the user-selected menu item. The getSelectedItem( ) method works for both combo boxes and single-selection list boxes. If you use getSelectedItem( ) with a multiple-selection list box, it returns the last selected item in the list:

// Displays the label property of the selected item from a combo box.
trace(myComboBox_cb.getSelectedItem(  ).label);

// Displays the data property of the selected item from a combo box.
trace(myComboBox_cb.getSelectedItem(  ).data);

Generally, the label property is used for display purposes, while the data property is used to submit the form data to a server for further processing.

If implementing a list box that allows multiple selections at once (see Recipe 11.3), you should retrieve the selections using getSelectedItems( ), which returns an array of objects with label and data properties:

// Store the array of selected items in selectedItems.
selectedItems = myListBox_lb.getSelectedItems(  );

// Display the label and data properties of each element in the selectedItems array. for (var i = 0; i < selectedItems.length; i++) { trace(selectedItems[i].label); trace(selectedItems[i].data); ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required