2012-02-20 23 views
0

自動完了は正常に動作しています。私はこの方法で 私のコードを完全自動の値を保存するための隠された値を入れる:Jqueryオートコンプリートの値を取得

$("#cityOp").autocomplete({ 
     source : function(request, response) {  

     var city_value = jQuery("#cityOp").val(); 


     $.ajax({ 
      url: "city.html", 

      dataType: "json", 
      data : { 
       filter : city_value 
      },   


      success : function(data) { 

       response(jQuery.map(data.cities,function(item) { 
            return { 
             value : item.locationName, 
             key : item.locationId 

            }; 
           })); 
       }, 
select : function(event, ui) { 

     $("#theHidden").val(ui.item.key) ; 
    } 

    }); 

その後、私は場所の値を保存するために、この場所IDを取得したいので、私は のように試してみました:

save(){ 
var locationValue=$("#theHidden").val(); 
//other saving codes 
} 

しかし、私はここでlocationValueは未定義です。

この隠し値を保存関数でどのように取得できますか? オートコンプリート機能は、準備完了と保存機能に関するドキュメントにあります。

+1

select : function(event, ui) { setLocationValue(ui.item.key); } 

を解決しましたか? putアラート(ui.item.locationId);選択機能で。私は独立したコントロールではなく、オートコンプリート:$(this).data( "value"、ui.item.locationId)を呼び出して、選択された値を入れません。 – elrado

+0

'save()'関数は正しく定義されていますか? 'function'キーワードで?入ってくる値と**は正しく設定されていますか?最初は未定義に設定されていますか、ブラウザのデバッガでチェックインできます。 – gideon

+0

@elrado私は選択機能に迷っていましたが、$( "#theHidden")を変更しました。val(ui.item.locationId); into $( "#theHidden")。val(ui.item.key);アラートをアラートにする(ui.item.key);隠し値 –

答えて

1

これは選択機能の発火であるJS

var locationValue; 

function setLocationValue(value){ 
    locationValue=value; 
} 
0

$ ajaxメソッドの応答では、データを2つのプロパティvalueとkeyだけでJSONオブジェクトにマッピングしています。

次に、selectでは、もう存在しないプロパティを使用しています。

これらの元の値を残しておきたい場合は、それらの値もマップする必要があります。代わりに、次のようにIDを隠しフィールドに保存することもできます。

$("#theHidden").val(ui.item.key); 

これはうまくいかない場合は教えてください。

+0

私の質問は、保存機能でどのように隠し値を取得するには?私はvar locationValue = $( "#theHidden")のように置く。val(ui.item.key); 「uiが定義されていません」というメッセージが表示されます。 –

+0

pls助けてください。任意のソリューションですか? –

関連する問題