2

私はjQueryUI 1.8を使用しています。オートコンプリート機能です。jQueryUI複数のフィールドのオートコンプリート

は、これまでのところ私はこのように複数のフィールドで活躍オートコンプリートを取得するために管理している:

アイデアは隠しIDでフォームを保存するときに利用できるか、フィールドの自動、情報およびINFO2場合から新しいレコードを作成することです
$(function() { 
    $("#auto").autocomplete({ 
     source: "/auto", 
     minLength: 2, 
     dataType: 'json', 
     change: function(event, ui) { 
       $("#Id").val(ui.item ? ui.item.id : ""); 
       $("#Info").val(ui.item.info); 
       $("#Info2").val(ui.item.info2); 

     }, 
     select: function(event, ui) { 
       $("#Id").val(ui.item ? ui.item.id : ""); 
       $("#Info").val(ui.item.info); 
       $("#Info2").val(ui.item.info2); 
     } 
    }); 
}); 

いずれもデータベースと比較して変更されています。今私はレコードを選択し、それが必要なように隠しIDをクリアする自動フィールドを変更する場合は動作しています。しかし、レコードを選択してフィールド情報やinfo2を変更すると、選択したIDは隠し入力に残りますが、これは間違っています。

この問題を解決するにはどうすればよいですか?

答えて

1

#Infoまたは#Info2が変更されたときに、#Idを消去してもよろしいですか?あなただけの​​またはchangeイベントをリッスンしていることを行うことができ:

$("#Info, #Info2").keydown(function() { 
    $("#Id").val(''); 
}); 

またchangeに、ui.itemは常に定義されていないので、あなたの変更機能は、私のためにエラーを投げています。ここでは、その問題を解決できた方法は次のとおりです。私はあなたが何をしようとしての例を書いた

change: function(event, ui) { 
    $("#Id").val(ui.item ? ui.item.id : ""); 
    if (ui.item) { 
     $("#Info").val(ui.item.info); 
     $("#Info2").val(ui.item.info2); 
    } 
}, 

http://jsfiddle.net/dNdhk/が。これがあなたが達成しようとしているものでないかどうか私に教えてください。

+0

ありがとうございました!それは正確に動作させるのに十分です。これで私は前進することができます。 – Henri

関連する問題