2013-03-06 3 views
2

여기에서 도움이 필요합니다.jQuery 복제 행 - 특정 필드에 값 삽입

그래서 기본적으로 필드 아래에 양식이 있습니다. "추가 제품 추가"버튼을 클릭하면 제품, 재고 및 수량 필드가 복제되고 새 행이 만들어집니다. 제품 필드는 제품의 드롭 다운 목록입니다 (MySQL의 쿼리)

누군가가 데이터베이스를 쿼리하는 데 필요한 제품을 선택하고 에서 선택한 제품의 재고 수준을 표시 할 때 도움이 필요한 것입니다. 하나의 행을 가지고 작업하고 있지만, 복제 된 요소들에 대해 작업 할 수는 없습니다 (각각). 코드는 다음과 같습니다. 도움을 주시면 감사하겠습니다.

<select name="product[]" id="product"> 
    <option value="product 1"> Product 1</option> 
    <option value="product 2"> Product 2</option> 
    <option value="product 3"> Product 3</option> 
    <option value="product 4"> Product 4</option> 
</select> 
<input type="text" id="stockclass="inputfield" name="stock" size="8" /> 


$('#product').on("change", function() { 
    var val = $(this).val(); 
    $("#stock").val(val2);       
}); 

$("#add").on("click", function() { 
    var row = $('#item tbody > tr:last').clone(true);    
    row.insertAfter('#itemsTable tbody > tr:last'); 
    return false;    
}); 
+0

'또는'또한 HTML 코드를 공유 –

+0

을 delegate' on' live'는'사용되지 않습니다 .. –

+0

@DipeshParmar HTML 코드에서와 같이 ... – devofash

답변

2

사용 .on().live() 때문에 지금부터 감가 상각된다.

$(document).on('click','SELECTOR',function(){ /*...*/ }); 

당신은 완전히 잘못된 것입니다 같은 ID으로 DOMs를 복제한다. Class을 사용하십시오.

<select name="product[]" class="product"> 
    <option value="product 1"> Product 1</option> 
    <option value="product 2"> Product 2</option> 
    <option value="product 3"> Product 3</option> 
    <option value="product 4"> Product 4</option> 
</select> 
<input type="text" class="quantity inputfield" name="quantity[]" size="8" value="" /> 
<input type="text" class="target_price inputfield" name="target_price[]" size="8" value="" /> 
<input type="text" class="stock_availability inputfield" name="stock_availability[]" size="8" value="" readonly="readonly" /> 

이제 다른 하나는 당신이 그것을 변경 이벤트해야한다 잘못 선택 박스에 대한 이벤트를 클릭해야합니다.

$('.product').on('change',function() 
{ 

    $.ajax(
    { 
     //ajax params and options and in success set value 
    }); 

}); 
+0

모두 변경됨 ... 여전히 작동하지 않습니다 ... 복제 된 각 항목이 아니라 "주식 필드"의 첫 번째 행에 값을 넣습니다. – devofash

+0

@devofash는 복제 DOM에 부모 DOM에 삽입 된 값이 들어 있음을 나타냅니다. –

+0

예 ... 맞습니다. 올바른 재고 수준을 보여 주지만 첫 번째 행에는 해당 (2, 3, 4 등) 행에 표시되지 않습니다. – devofash