2

入力の行を含むフォームがあります。これらの入力の 1 つは jQueryUI オートコンプリートで、各行の横には行を複製するボタンがあり、追加のレコードを作成できます。新しく作成された入力を認識してバインドするようにオートコンプリートを設定しました。

$( '.input .my-field' ).on( 'focus', function() {
  var $this = $( this );

  $this.autocomplete({ ... });
});

私が見つけているのはこれです:

  1. 最初の行のオートコンプリート フィールドは正常に機能します。
  2. 最初の行でそのフィールドに値を入力しなかった場合、2 行目のオートコンプリート フィールドは正常に機能します。
  3. 最初の行に値を入力した場合、2 行目のオートコンプリート フィールドがまったく機能しません。

要するに、最初にすべての行を作成すると、すべてが期待どおりに機能しますが、これは期待される使用例ではありません。ほとんどの人は、最初のレコードを入力し、クリックして別のレコードを追加し、それらの値を入力し、クリックして別のレコードを追加し、すすぎ、繰り返します。

私はまだそれを実行していますが、私は何時間も費やしているので、誰かが何が起こっているのかを知り、私が自分で解決するのに何時間も必要としない解決策に飛び込むことができることを願っています.

4

1 に答える 1

0

autocomplete入力を複製した後、再作成する前に実行する必要がある追加の手順が 2 つあります。

  1. aria-haspopup属性を削除します。
  2. データを削除しautocompleteます。

呼び出すだけでautocomplete("destroy")はうまくいきません。何らかの理由で、クローンではなく元の入力が破棄されます。jsFiddleでの作業例。以下の関連コード:

var clone = $(...)
    .clone(true)
    .removeAttr("aria-haspopup")
    .data("autocomplete",null);
于 2012-11-27T21:53:32.470 に答える