0

あなたに質問があります...

一部のテキストをオートコンプリートする関数があり、選択時に関数から2つの値を返したい...これが私のコードです:

function autoComp(field, srt, file, act) {
      $( field ).autocomplete({
            minLength: srt,
            source: function( request, response ) {
                  $.ajax({
                        url: file,
                        type: 'post',
                        dataType: "json",         
                        data: {'azione':act, 'txt':request.term},
                        success: function(data) {
                              response( $.map( data.result, function( item ) {
                                    return { 
                                          label: item.text, 
                                          value: item.text,
                                          id:  item.id
                                    }
                              }));
                        }
                  });
            },
            select: function( event, ui ) { 
                  var obj = {};
                  obj[0] = ui.item.id;
                  obj[1] = ui.item.label;
                  return obj;
            }
      }); 
}

$(document).on('focus', '.farmCompl', function(){
      obj = autoComp(this, 3, 'search.php', 'music');
      if(obj){
            alert(obj[0]);
            alert(obj[1]);
      }
});

autoComp(...) は、プロジェクトの多くの場所から呼び出される一般的な関数になりたいと考えています....「field」は完成するセレクター (例:「#text1」)、srt は automplete の開始です。 ... 実際、Ajax は正しく動作し、オートコンプリートはデータベース オプションを提示します ... 問題はオプションの選択にあります .... オプションを選択すると、オートコンプリートが id と label の値を関数または autoComp(...) を呼び出したイベントが明確であったことを願っています。

4

1 に答える 1