2014-09-04 100 views
0

我有一個表單,用戶可以在其中動態添加行。在每行中都有一個產品下拉菜單,該菜單應該以與所選產品相關的價格自動填充文本字段。這適用於第一行,但不適用於動態添加的行。產品名稱仍然從mysql數據庫中拖到下拉列表中,但選擇時不會自動填充文本字段。任何幫助,將不勝感激!從動態添加行中的下拉選擇自動填充文本字段

編輯:我添加了以下部分,我認爲這將使整個事情工作,我只需要弄清楚如何將我的變量附加到名稱或ID或類,然後我可以有自動 - 填充代碼包括價格[我]和產品[我] ...我想這會使它適用於每個動態添加的行。現在有什麼想法?

for(var i=0;i<$('.orderform tr').length;i++) 
{ 
} 

編輯完

自動填充代碼:

<script> 

$(function() { 
$('select[name="product[]"]').change(function() 
    { 
     $('#price').val($('select[name="product[]"] option:selected').data('price')); 
    }); 
    }); 
</script> 

添加一行代碼:

<script> 
$(document).ready(function(){ 
    //This line clones the row inside the '.row' class and transforms it to plain html. 
    var clonedRow = $('.row').clone().html(); 

    //This line wraps the clonedRow and wraps it <tr> tags since cloning ignores those tags 
    var appendRow = '<tr class = "row">' + clonedRow + '</tr>'; 

$('#btnAddMore').click(function(){ 
     //this line get's the last row and appends the appendRow when it finds the correct row. 
     $('.orderForm tr:last').after(appendRow); 
     for(var i=0;i<$('.orderform tr').length;i++) 
{ 

} 
}); 
</script> 

HTML/PHP:

<table class="orderForm" id="orderForm" width="100%"> 
     <tr class="row">  
     <td> 
     <div class="pure-control-group"> 
      <label>Product or Service</label><select name="product[]" id="product"> 
      <option value=""></option> 
      <?php while($productRow = mysql_fetch_assoc($productResult)){?> 
        <option value="<?php echo $productRow['prouct_id'];?>" data-price="$<?php echo $productRow['price']; ?>"><?php echo $productRow['product']; ?></option> 
          <?php } ?> 
         </select> 

    </div> 
    <div class="pure-control-group"> 

     <label>Price</label><input type="text" id="price" name="price[]"> 
     </div> 
     <input type="button" class="deleteThisRow" id="deleteThisRow" value="Delete"/> 
     </td> 
     </tr> 
     </table> 
     <input type="button" id="btnAddMore" value="Add Product or Service" class="pure-button"/> 

回答

0

.clone()默認情況下不克隆事件處理程序。您可以使用.clone(true).appendTo(".orderForm");.clone()函數的參數true也複製值和事件。

+0

對不起,我對jquery非常無知。你能再解釋一下嗎?我不知道該把這個放在哪裏。 – 2014-09-04 19:18:36

相關問題