2010-12-28 22 views
0

テキスト入力要素にjQueryオートコンプリートスクリプトを使用していますが、変数が更新されたときにソースURIのlang変数が更新されないという問題があります。jQueryオートコンプリートソースパラメータが更新されない

ラジオ入力要素をクリックするたびにlangの値が更新され、その後、オートコンプリートコードをトリガーするテキスト入力要素に何かを入力します。不思議にも、それは常に "en"値を使用し、更新された値は使用しません。

誰かが私のコードのよりよいアプローチや修正を知っていますか?

コードは:あなたが値を変更しない場合は、選択をクリックしたとき

var lang = 'en'; 

$('input[name="language"]').click(function() 
{ 
    lang= $(this).val(); 
}); 

$("#query").autocomplete({ 
    source: "domain.com/suggest.php?language=" + lang, 
    minLength: 1 
}); 

答えて

1

ソリューションは、作成したカスタムAJAX呼び出しにあります。あなたが別のラジオボタンを選択するたびに、オートコンプリートが再初期化されるようにするには、クリックや変更関数の内部オートコンプリート機能を組み込む必要があります

1

クリックイベントが発生します。だから、langがselectの現在の値に再割り当てされている可能性があります。これは英語の場合、選択値を変更した後も英語のままになります。あなたはおそらく行うことを意味している:これはあまりにも他の人を助け

source: function(request, response) 
    { 
     $.ajax({ 
      url: 'domain.com/suggest.php', 
      dataType: "json", 
      data: {language: $('input[name="language"]:checked').val(), term: $('#query').val()}, 
      success: response 
     }); 
    }, 

希望:

$('input[name="language"]').change(function() 
{ 
    lang= $(this).val(); 
}); 
+1

理由だけではなく、$( '入力[名前を=使用しません"language"] ')。val()はlang varの代わりにすぐに使用できますか? – Mantar

+0

チェックされたラジオボタン( '$( 'input [name =" language "]:checked')。val()')から値を取得することができませんでした。ラジオボタンのチェックされたオプションと何か関係があったと思って、私はこのメソッドで解決することを望んでいました。残念ながら、それは同じ結果を持っています。 – EarthMind

+0

$( 'input [name = "language"]')。val()が選択した値を返さない場合、問題があります。 (console.log()とFirebugを使って確認する) – Mantar

0

var lang = 'en'; 

$('input[name="language"]').click(function() 
{ 
    lang= $(this).val(); 


$("#query").autocomplete({ 
    source: "domain.com/suggest.php?language=" + lang, 
    minLength: 1 
}); 

}); 
関連する問題