2010-12-16 5 views
0

ハロー に進み、私を自分のサイトでのオートサジェストを開発し、それが正常に動作し、現在の問題は今、ユーザーが選択候補が対応する提案にラジオボタンの値を取得してからオートサジェスト

を行くべきラジオボタンを選択しています
$().ready(function() { 

$("#q").autocomplete('?h=sugg&a='+$("#rad").val(), { 
    width:350, 
    max: 10, 
    highlight: false, 
    scroll: true, 
    scrollHeight: 300, 
    selectFirst: false, 
    formatResult: function(data, value) { 
     return value.split(".")[0]; 
    } 

}); 
<input name="q" id="q" autocomplete="off" /> 
     <input type="radio" name="rad" value="radio" id="rad_0" checked="checked" /> 
     Radio</label> 
    <br /> 
    <label> 
     <input type="radio" name="rad" value="radio1" id="rad_1" /> 
     Radio</label> 

の事、私は他を選択した場合、それは変わりません、それは常にデフォルト値を選択している私はそれを行うことができる方法を教えてください...

答えて

0

あなたはオートコンプリートを初期化する方法の問題がいくつかありますプラグイン。

$("#q").autocomplete('?h=sugg&a='+$("#rad").val(), ... 
  1. あなたは元URLの静的な値を使用しています。ラジオボタンが変更されると、URLは更新されません。 ?h = sugg & a =ラジオ
  2. ラジオボタンセレクタは、IDが「rad」のオブジェクトを探しています。あなたはこのIDの要素を持っておらず、そうしたとしても単一のラジオボタンにマップされます。

あなたが選択したラジオ値にこの方法を見つけることができます。

$("input[name=rad]:checked").val(); 

これは名前「RAD」(あなたは2を持っている)と、すべての入力要素を見つけます。チェックされた擬似セレクタを使って、チェックされたラジオボタンだけを探します。

新しいセレクタを使用するように初期化を更新した場合でも、最初のラジオボタンだけを使用します。 2つの提案:

  1. ラジオボタンが変更されたら、オートコンプリートソースを更新します。

    $( "入力[名前=ラジアン]")。(関数(){ $( "#qを")をクリックします。オートコンプリート( "オプション"、 "ソース"、 "?H = sugg & A =" + this.value); });

  2. 代わりにコールバックソースを使用してください。ここでは、初期化時に現在のオプション値(または必要な基準)に基づいて異なるクエリを行うために使用できる関数を提供できます。 「ソース」の使用方法の例は、hereです。

オートコンプリートプラグインの完全なドキュメントは、available hereです。

関連する問題