お世話になっております。
フォームを複製する以下のコードについて質問があります。
現在のコードでは.trigger('adjustName');が実行されず、nameに対して固有の名前がつけれません。
何が原因かわからないですが、$('.repair [name]').live〜以降が実行されていません。
$('.repair').live〜に変更すると実行はされるのですが、意図した動作ではありません。
質問:$('.repair [name]')の箇所をどう書けばいいのでしょうか。
よろしくお願いします。
html
1 2<tr class="repair template"> 3 <th>dummy</th> 4 <td> 5 <div class="repairBox"> 6 <p class="repair01"><span class="prefix">修理:</span><select name="part" class="part"><option value="選択してください">選択してください</option><option value="部位1">部位1</option><option value="部位2">部位2</option></select></p> 7 </td> 8</tr> 9<tr class="btnTr"> 10 <th></th> 11 <td> 12 <p id="addBtn">追加する</p> 13 <!-- /.btn --> 14 </td> 15</tr>
javascript
1if($("#addBtn").length) { 2 $("#addBtn").on('click', function() { 3 var repairItem = $('<tr>') 4 .addClass('repair') 5 .insertBefore("#orderTable .btnTr") 6 .data('suffix','.'+(repairCount++)); 7 $("#orderTable .repair.template") 8 .children() 9 .clone().appendTo(repairItem) 10 .trigger('adjustName'); 11 12 13 }); 14 15 $('.repair [name]').live('adjustName',function(){ 16 var suffix = $(this).closest('.repair').data('suffix'); 17 if (/(\w)+\.(\d)+$/.test($(this).attr('name'))) return; 18 $(this).attr('name',$(this).attr('name')+suffix); 19 }); 20 21}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。