2012-04-30 12 views
1

フォームを持っていて、テーブルに行を動的に追加するためにjQuery Table AddRowプラグインを使用していますが、問題はメニュー項目を選択するときですメニュー項目は、その左側のテキストボックスに入ります。それは最初の行で動作しますが、プラグインを介して追加された行を操作する方法を理解できません。jQuery Table AddRowプラグイン追加された行にID番号を追加する

現在のアクションで私のコードを見ることができます:http://jsfiddle.net/VXNzd/ここ

は、jQueryのコードです:

// This moves the select box text to the input box 
$('#mnu_names').change(function() { 
    var mnuProduct = $("#mnu_names").find(':selected').text(); 
    var mnuCleanProduct = mnuProduct.split(' - '); 
    $('#topping_name').attr('value', mnuCleanProduct[0]); 
}); 
// This code is needed to add and delete rows with the plugin 
$(".toppings_add").btnAddRow({ 

jsfiddleリンクアップし、トップを訪問し、私が話しているかを確認する方が簡単な場合があり。それが選択ボックスを使用してロードし、何かを選択すると、その情報が価格情報なしでテキストボックスに表示されます。新しい行を追加してもう一度やり直してください。動作しません、それを動作させる方法を把握することはできません。

+1

感謝を次のように

修正jqueryのコードが入ります。私はあなたの問題をすぐに見ることはできませんが、IDである '#topping_name'とクラスである' .topping_name'を使うことに注意してください。 1つのページに複数の一意のIDを持たないでください。 – freshnode

答えて

2

問題は、あなたのIDが一意ではないということです。また、$.change()は、実行した後に追加されたブロックでは機能しません。代わりに$.on('change',...)を使用してください。

コードを更新してhttp://jsfiddle.net/PDPbn/5/に投稿しました。 jsfiddleを投稿するための

$(document).on('change','.mnu_names',function() { 
    var mnuProduct = $(this).find(':selected').text(); 
    var mnuCleanProduct = mnuProduct.split(' - '); 
    $(this).parentsUntil('tbody').find('.topping_name').attr('value', mnuCleanProduct[0]); 
}); 
+1

jQueryのドキュメンテーションから: 'jQuery 1.7から、.live()メソッドは廃止予定です。この場合、新しい広告申込情報を追加し、その時点で必要なイベントを新しいオブジェクトに添付するメソッドを調べることができます。 depricatedメソッドを使用すると、後でサポートされないコードと不安定なコードが生成される可能性があります。 – Nope

+0

それは正しいです、私はそれを 'on()'に変更します。 – Zombaya

+0

Zombayaに感謝します。IDについては、Table AddRowがどのように処理するのか分かりませんが、フォームを作成するための例しかありません。私は、正式なjQueryエドゥを私が見つけることができるだけで使用したり遊んだりすることはありません。 – Manvaril

関連する問題