ユーザーが選択を完了し、ブートストラップマルチセレクトドロップダウンから離れた後にロジックを実行しようとしています。ブートストラップマルチセレクションブラーイベントがトリガーされない
私はblurイベントをフックしようとした:
onBlur: function(){
alert('OnBlur');
}
しかし、それはキックなかっインを決して:
私のViewModelにonBlurイベント機能を定義 <select id="select1" multiple="multiple" class="form-control" data-bind="options: availableValues, selectedOptions: selectedValues, multiselect: {
includeSelectAllOption: true
}, event: { blur: $root.onBlur}">
</select>
。私は$root.onBlur
、ただblur: onBlur
のせずに直接イベントバインディングを設定しようとしましたが、うまくいきませんでした。ここで
は、サンプルJSフィドルです:
https://jsfiddle.net/gtzatrL2/
私は何かが足りないのですか?またはブートストラップマルチ選択に適用されないブラーイベントですか?
私がぼかしをかけたいのは、すべての項目が選択された後にAjaxを実行するバックエンドロジックがあるからです。 observableArrayの変更を購読すると、追加したアイテムごとにバックエンドコールが発生しますが、これは私が望むものではありません。
ブートストラップは、実際には、元のselect要素を隠し、その場所にdiv要素を示し、その選択にぼかしがヒットれることは決してありませんされています。ブートストラップコントロールを使用したい場合は、元のselectの代わりにbootstrapを作成する要素にイベントをアタッチするカスタムバインディングが必要になるでしょう。 –
実際、私は、あなたが既に、http://github.com/davidstutz/bootstrap-multiselectでブートストラップマルチセレクションプロジェクトを使って、それを正確に行っているのを見ています。残念ながら、彼のバインディングハンドラはBlurをサポートしていないようです。サポートを追加するよう頼んだり、jsファイルからハンドラーをコピーして自分自身で修正して、ブラーイベントのサポートを追加することもできます。 –