2016-09-12 8 views
-1

私はajax select2(v 3.5.4)を完全に動作させていますが、今はバーコードスキャナと連携する必要があります。 Enterキーが押されたときを検出する必要があります。スキャナはselect2入力にコードを挿入し、その後にEnterキーを挿入します。バーコードスキャナを使用するためにajax select2を設定する方法

問題はスキャナが速すぎて、AJAX呼び出しが入力キーを押す前に終了しないということです。

これは、これまでの私のコードです:

$('#my_select').select2 
    initSelection: (elm, callback) -> 
     data = 
     id: $(elm).data "record-id" 
     name: $(elm).data "record-text" 
     callback(data) 
    ajax: 
     url: url 
     dataType: "jsonp" 
     quietMillis: 100 
     data: (term, page) -> 
     query: term 
     limit: 10 
     page: page 
     results: (data, page) -> 
     more = (page * 10) < data.total 

     results: data.records 
     more: more 
+0

これまでに行ったことがありますか? –

+0

@HareshVidja申し訳ありませんが、質問に自分のコードを追加しました – nigal

+0

検索テキストボックスに入力したことを意味しますか? –

答えて

0

私は同様の問題がありました。私はページリロード後に値を設定する必要がありました。私は、私の回避策もあなたを助けることができると思います。しかし、誰かがもっと良い方法を知っているかもしれません?

私は(あなたの例コード「12345」内)Ajaxの結果とselect2ボックスを初期化:

var selectionList = [{ id: '12345', text: '12345' }]; 
$("#my_select").select2({ 
           data: selectionList 
          }); 

をその後、私は値を設定し、changeイベントをトリガしました。その後

$("#my_select").val("12345").trigger("change"); 

、私はajaxロードで再びselect2ボックスを初期化します。これは、あなたが上記の投稿のコードです:

$('#my_select').select2 
    initSelection: (elm, callback) -> 
     data = 
     id: $(elm).data "record-id" 
     name: $(elm).data "record-text" 
     callback(data) 
    ajax: 
     url: url 
     dataType: "jsonp" 
     quietMillis: 100 
     data: (term, page) -> 
     query: term 
     limit: 10 
     page: page 
     results: (data, page) -> 
     more = (page * 10) < data.total 

     results: data.records 
     more: more 

この方法では、あなたはselect2ボックスにajax値を設定しています。 これが達成したいと思うなら、私は100%確実ではありません。または、押されたエンターキーを実際に発射する必要がありますか?この解決策があなたを助けてくれたら、私に教えてください。ありがとう。

関連する問題