Recipe 11.6 Detecting the Selected Menu Items

11.6.1 Problem

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

11.6.2 Solution

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

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

Typically, ActionScript developers use either getSelectedItem( ) or getSelectedItems( ) within the click handler for a form's Submit button:

function onClick (  ) {
  var selectedVal = myListBox_lb.getSelectedItem(  ).data;

  // Do something with data here.


    Part I: Local Recipes
    Part II: Remote Recipes