2011-08-11 14 views
2

問題は、オートコンプリートコンボボックスが、変更イベントなしで初期化されることです。私は後でバインドしたいが、ドキュメントはコンボボックスについて不十分なようだ。動作しませんJQuery UI - 変更イベントをコンボボックスにバインドする方法は?

コード:

$('#select').combobox(); 
... 
$('#select').bind("autocompletechange", function(event, ui) { 
    alert('changed'); 
}); 

私はイベントのラベルを推測していますコンボボックスのインラインラベルは、例えば「選択」されているので間違っています$('#select').combobox({selected : function(ev,ui) { alert('selected'); }});が動作しますが、私はそのように使用することはできません。

イベントの正しいラベルは何ですか?私はドキュメントでそれを見つけることができません。

編集:実際に私の問題がどこにあるのか見つけました。 $('#select').combobox();は、selectをオートコンプリート入力にマップするだけです。作成する入力にはid='select-autocomplete'のようなIDがあります。そのため、コンボボックスにバインドしてイベントを送信するには、セレクタをselectではなく入力にしてください。だから、作業コード:だから

$('#select').combobox(); 
    ... 
$('#select-autocomplete').bind("autocompletechange", function(event, ui) { 
    alert('changed'); 
}); 
+0

問題は何ですか?基本的には、フィールドがぼやけたときにオートコンプリートイベントが発生するはずです。 (フォーカスを失う)別のフィールドにフォーカスを当てると警告が表示されませんか? – evasilchenko

答えて

0

、私が作成した.ui-コンボボックス入力にイベントを結合よりも明確な解決策を見つけました。あなたは、入力が初期化されているコンボボックスのコード場所を見つけ、selectパラメータを見つけるべきです。 コードのこの部分を変更してください:

select: function(event, ui) { 
    ui.item.option.selected = true; 
    that._trigger("selected", event, { 
     item: ui.item.option 
    }); 
    that.element.trigger('change');// here is the trick 
}, 
+0

ちょうどリンクのために:もう少し説明のある同様の答えが見つかりました[ここ](http://stackoverflow.com/a/4761830/2098939)。 – Griddo

関連する問題