$.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/。
答案 0 :(得分:0)
您必须遍历组合框中选择的每个项目。例如:
var test_arr = new Array();
$("#test1 option:selected").each(function() {
test_arr.push( $(this).val() );
});
希望这有帮助!