1

jQuery でオートコンプリート プラグインを使用しており、結果の選択を追加の要素 (非表示の入力とテキスト入力) を持つ div 要素に追加したいと考えています。

これは私のhtmlコードです:

これはjQueryでの私の関数です:

$("#buscar").autocomplete({
    source: "procesos/buscarPersona.php",
    minLength: 2,
    select: function( event, ui ) {
        $("#acreditados")
            .append('<div class="col50"><p>'
            + '<input type="hidden" name="id" value="' + ui.item.id_persona + '"/>'
            + ui.item.value 
            + '</p></div>'
            + '<div class="col50 f-right"><p>Monto:' 
            + '<input type="text" /></p></div>');
        }
});

今ではコードは正常に動作していますが、選択結果と追加の入力を表示する追加機能を維持するのは難しいと感じています。これをより簡単にするために load() 関数を使用できる方法はありますか? 最終出力では、最後の選択だけでなく、複数の選択を追加する必要があります

4

1 に答える 1

1

ロードは使用しないでください。ロードは Ajax であり、サーバーとの通信を意味します。検証やより複雑なロジックが必要でない限り、選択ごとにネットワーク アクセスを避ける必要があります。

ロードを使用する場合、選択ごとにサーバーと通信し、html を渡します。

IMHO このソリューションは見苦しく見えますが、より効率的です。

編集:

この div を個別に保持します。

    <div class="dynamiccontentcont">
       <div class="col50">
          <p><input type="hidden" name="id" value=""/></p>
       </div>
      <div class="col50 f-right">
         <p>Monto:<input type="text" /></p>
     </div>
   </div>

選択時

  1. を呼び出して、この div を複製しますjQuery('.dynamiccontentcont').clone()
  2. 選択した値を配置します(現在コードで行っているように)
  3. コードに div を追加します
于 2012-04-27T16:38:05.323 に答える