Hierarchical Select

In this example, you are forced to select an item from the deepest level. And you can resize the widget. This is one of the most basic forms.
Try to select the BMW 318i. Because you are being forced to select from the deepest level, it will feel even easier than expected.
Show config
Array
(
    [module] => hs_taxonomy
    [params] => Array
        (
            [vid] => 2
            [exclude_tid] => 
            [root_term] => 
            [entity_count_for_node_type] => 
        )

    [save_lineage] => 0
    [enforce_deepest] => 1
    [entity_count] => 0
    [require_entity] => 0
    [level_labels] => Array
        (
            [status] => 0
        )

    [dropbox] => Array
        (
            [status] => 0
        )

    [editability] => Array
        (
            [status] => 0
        )

    [resizable] => 1
    [render_flat_select] => 0
)
Select your car, or the car that is the closest match to your car.
In this example, the dropbox is enabled, and a title and limit are set for it. Also, the selection will not be reset after you add an item to the dropbox.
Try adding a term and you will get a warning, stating that you cannot select any additional items.
Show config
Array
(
    [module] => hs_taxonomy
    [params] => Array
        (
            [vid] => 2
            [exclude_tid] => 
            [root_term] => 
            [entity_count_for_node_type] => 
        )

    [save_lineage] => 0
    [enforce_deepest] => 1
    [entity_count] => 0
    [require_entity] => 0
    [level_labels] => Array
        (
            [status] => 0
        )

    [dropbox] => Array
        (
            [status] => 1
            [title] => Car park
            [limit] => 3
            [reset_hs] => 0
        )

    [editability] => Array
        (
            [status] => 0
        )

    [resizable] => 1
    [render_flat_select] => 0
)
Car park
Aston MartinVanquish S
BMW7 series714i
At least when I win the lottery … twice.
In this example, the dropbox still is enabled, but you are no longer forced to select an item from the deepest level. Level labels have been entered. And the entire lineage is being saved. Finally, the ability to create new items is enabled.
Try adding Paris, you will see that France will be selected as well.
Also try creating some new terms, Hierarchical Select makes this trivially easy and painless.
Show config
Array
(
    [module] => hs_taxonomy
    [params] => Array
        (
            [vid] => 6
            [exclude_tid] => 
            [root_term] => 
            [entity_count_for_node_type] => 
        )

    [save_lineage] => 1
    [enforce_deepest] => 0
    [entity_count] => 0
    [require_entity] => 0
    [level_labels] => Array
        (
            [status] => 1
            [labels] => Array
                (
                    [0] => Country
                    [1] => City
                )

        )

    [dropbox] => Array
        (
            [status] => 1
            [title] => Places
            [limit] => 0
            [reset_hs] => 1
        )

    [editability] => Array
        (
            [status] => 1
            [item_types] => Array
                (
                    [0] => country
                )

            [1] => city
            [allowed_levels] => Array
                (
                )

            [allow_new_levels] => 1
            [max_levels] => 2
        )

    [resizable] => 1
    [render_flat_select] => 0
)
Places
Belgium
SpainBarcelona