2010-12-15 16 views
1

私は完璧に動作している自動完成フィールドを持っており、データベースからデータを取得します。ユーザーが応答から結果を選択すると、選択した項目のIDを非表示のフィールドに保存します。ここでJqueryオートコンプリート:選択したアイテムを取得する方法ID?

は、私はオートコンプリート

$jQNetbmis("input#txt_client_name").autocomplete("autosuggest_clientmaster.php", { 
     width: 160, 
     mustMatch: true, 
     selectFirst:false, 
     formatResult: function(row) { 
      var resStr = row.toString(); 
      temp = resStr.substring(0,resStr.indexOf("+")); 
      return temp; 
     }, 
     formatItem: function(row, i, max) { 
      var resStr = row.toString(); 
      var temp = resStr.substring(0,resStr.indexOf("+")); 
      return temp; 
     } 
    }); 

後に使用しているコードは、私は、ユーザーが名前1を選択した場合、私は50を保存したい

N
name 1+50 
Name 2+85 
Name 3+86 
Name 4+98 
Name 5 +103 

を押しますことを応答であります隠されたフィールドに。

私はオートコンプリートを使用しています - あなたはこれを行うにはresultハンドラを使用することができるjQueryプラグイン1.0.2

Krishnik

+0

あなたがより明確にすることができます。または「後は私が押したn個取得すること応答です」詳細情報?あなたが隠されたフィールドに入れたいものを知っているなら、なぜあなたはできないのですか? '$( 'input#hidden-field')。attr( 'value'、yourNumberHere);' – matthewpavkov

+0

@matthewpavkovキーボードの文字 'n'を押したときのサーバからの応答です。 nと一緒に見つかる名前をIDとともに取得します。サーバーは、 'Title + id'という形式で応答を返します。 formatItemは結果から+ id部分を取り除き、タイトルのみを表示します。したがって、ユーザーが名前2を選択した場合、私はID 85を取得して、それを隠しフィールドに保存して、後で使用できるようにします。あなたを混乱させて申し訳ありません..... – Nick

答えて

1

。あなたはこれを実現したいかもしれない方法の例は次のとおりです。

$('input#txt_client_name').result(function(event, data){ 
    $('input#hidden_field').val(data.substring(data.indexOf('+') + 1)); 
}); 

ハンドラは、ユーザーが項目を選択するたびに実行されます。さて、このプラグインの代わりにjQuery UI Autocompleteを使用することをお勧めします。このプラグインは推奨されていません。

+0

ありがとうYi Jiang私はdata.indexOfの代わりにdata [0]を使用しなければなりませんでした。いくつかの変更を加えました。 – Nick

0

jQuery UIには、優れたオートコンプリートウィジェットがあります。これは、文書番号がhttp://jqueryui.com/demos/autocomplete/と非常に優れています。あなたのケースもそこにありますので、例を見てください。

+0

彼は実際にjQuery UI Autocompleteプラグインを使用していません。そのための現在のバージョンは1.8.xです。彼が与えたコードで使用されている関数はjQuery UIオートコンプリートには存在しません。彼はこのプラグインを使用しています:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/ –

0

あなたが使用しているオートコンプリートは本当にわかりませんが、問題はそのようには見えません。

だけで隠しフィールドの既存の値をID連結:私が一部を理解していないよ

$jQNetbmis("input#txt_client_name").autocomplete("autosuggest_clientmaster.php", { 
    width: 160, 
    mustMatch: true, 
    selectFirst:false, 
    formatResult: function(row) { 
     var resStr = row.toString(); 
     //temp = resStr.substring(0,resStr.indexOf("+")); 
     var temp = resStr.split('+'); 
     $('input#hidden_field').val($('input#hidden_field').val()+'+'+temp[1]); 
     return temp[0]; 
    }, 
    formatItem: function(row, i, max) { 
     var resStr = row.toString(); 
     var temp = resStr.substring(0,resStr.indexOf("+")); 
     return temp; 
    } 
}); 
+0

formatResult、formatItemは両方ともrestult setのすべての項目に対して呼び出されます。だから毎回最後の値だけを取得する – Nick

関連する問題