0

jQueryUIのタイプアヘッド機能を備えたテーブルがあります。テーブル行が1つしかない場合(初期ビュー)、フォームで機能しています。ユーザーが必要に応じて追加のテーブル行を作成できるようにするボタンがあります。これにより、テキスト入力と選択メニューのIDもインクリメントされます。

先行入力の選択に基づいて、一致する値を選択メニューに挿入する別のスクリプトがあります。これらは両方とも最初の行では正常に機能しますが、作成された追加の行では機能しなくなります。

サンプルのJSFiddleをセットアップしました。

http://jsfiddle.net/fmdataweb/hxzME/1/

なぜそれらが最初の行でのみ機能するのか理解していると思います-これらはこれらのIDに関連付けられています:#lastYearSelect1と#nextYearSelect1-しかし、それらを変更する方法がわからないため、#lastYearSelect2、#nextYearSelect2、#lastYearSelect3、 #nextYearSelect3など。

4

2 に答える 2

1

スクリプトにはいくつかの問題があります。

まず、その通りです。行のクローンを作成した後、すべてのスキャフォールディングを再度設定する必要があります。cloneメソッドは機能をコピーせず、html要素のみをコピーします。

適切な要素を見つけるには、オブジェクトの属性名の先頭に一致するJQuery ^ =セレクターを使用cloneして、オートコンプリートフィールドに変換する適切な子入力を見つけることができます。関数で同じトリックを実行して、ドロップダウンを正しい関数に変更できます。

最後に、コードと変数の多くは、適切にアクセスするには間違ったスコープにありました。主にグローバルスコープにアクセスできるように、多くの変数を移動しました。もう少し経験を積んだら、これはやりたくないでしょうが、今のところこれで問題ありません。

新しい関数も作成しましたsetDropDownが、このコードは以前のものとほとんど同じです。

コードの動作バージョンは次のとおりです。

http://jsfiddle.net/hxzME/3/

于 2012-08-15T16:15:18.223 に答える
0

要素にクラスを追加し、イベントハンドラーをバインドするときにクラスセレクターを使用します。

于 2012-08-15T15:40:01.847 に答える