$.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) {
//
},
})
ui.item.value
와 함께 select
함수에서 combobox 값을 얻을 수 있지만 combobox id - $("#cbCity").val()
에 의해 같은 값을 얻으려고하면 항상 초기 값을받습니다. 이 함수는 3 개의 콤보 박스에 대해 정의되고 선택 함수에서 모든 값을 가져와야하기 때문에 ui.item.value
을 사용할 수 없습니다.
$("#cbCountry").val()+'-'+$("#cbCity").val()+'-'+$("#cbOrg").val()
데모 here를 참조하십시오.
select 함수에서 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/.
이미 선택된 항목에 대해서는'$ ('# cbCountry'). next(). val()'을 사용할 수 있습니다. – hyperslug
@hyperslug, 그것은 작동하지만 입력에서 값을 가져 오는 것처럼 보입니다. select가 아닌 것입니다. 따라서 select 옵션 값이 아닌 입력 텍스트 값을 반환합니다. –
'success' 콜백에 전체 텍스트를 저장하지 않으시겠습니까 :'value : item.label'? – hyperslug