如何在select函数中获得组合框值?

时间:2011-11-06 08:04:48

标签: jquery jquery-ui

combobox定义了select事件:

  $.widget( "ui.combobox", {
    _create: function() {
      var self = this,
        select = this.element.hide(),
        selected = select.children( ":selected" ),
        value = selected.val() ? selected.text() : "";
      var input = this.input = $( "<input>" )
        .insertAfter( select )
        .val( value )
        .autocomplete({
          delay: 0,
          minLength: 0,              
          source: ...

          select: function( event, ui ) {
            // 
          },
        })

我可以使用select获取ui.item.value函数的组合框值,但如果我尝试通过组合框ID $( "#cbCity" ).val()获得相同的值,我总是会收到初始值。我不能(?)在这里使用ui.item.value,因为这个函数是针对3个组合框定义的,而在select函数中我需要获取所有这些函数的值:

$( "#cbCountry" ).val()+'-'+$( "#cbCity" ).val()+'-'+$( "#cbOrg" ).val()

请参阅演示here

看起来我必须在select函数中动态生成选择选项:

<option value="value">label</option>

然后将它们标记为在初始代码中完成的选择:

  select: function( event, ui ) {
    ui.item.option.selected = true;
    self._trigger( "selected", event, {
      item: ui.item.option
    });
  }

但我不知道该怎么做 - http://jsfiddle.net/and7ey/k2J5v/4/

1 个答案:

答案 0 :(得分:0)

您必须遍历组合框中选择的每个项目。例如:

var test_arr = new Array();
    $("#test1 option:selected").each(function() {
        test_arr.push( $(this).val() );
    });

Fiddle

希望这有帮助!

相关问题