후이 포커스를 잃었 :
내.tr_clone
이 jQuery를 사용하여 복제되는
<tr class="tr_clone">
<td><?php echo $this->Form->input('items][',array('label'=>false,'options'=>$items,'class'=>'items')); ?> </td><td><?php echo $this->Form->input('price][',array('class'=>'price','label'=>false)) ?></td><td><?php echo $this->Form->input('unit][',array('class'=>'unit','label'=>false)) ?></td>
</tr>
. HTML을 렌더링 한 후 .tr_clone
데이터를 한 번 복제 한 후 다음 HTML이 생성됩니다. focusout
이벤트가 select
발생할 때
<table>
<tr class="tr_clone">
<td>
<div class="input select">
<select id="InvoiceItems][" class="items" name="data[Invoice][items][]">
<option value="3">Item1</option>
<option value="4">Item2</option>
<option value="5">Item3</option>
</select>
</div>
</td>
<td>
<div class="input text">
<input type="text" id="InvoicePrice][" class="price" name="data[Invoice][price][]">
</div>
</td>
<td>
<div class="input text">
<input type="text" id="InvoiceUnit][" class="unit" name="data[Invoice][unit][]">
</div>
</td>
</tr>
<tr class="tr_clone">
<td>
<div class="input select">
<select id="InvoiceItems][" class="items" name="data[Invoice][items][]">
<option value="3">Item1</option>
<option value="4">Item2</option>
<option value="5">Item3</option>
</select>
</div>
</td>
<td>
<div class="input text">
<input type="text" id="InvoicePrice][" class="price" name="data[Invoice][price][]">
</div>
</td>
<td>
<div class="input text">
<input type="text" id="InvoiceUnit][" class="unit" name="data[Invoice][unit][]">
</div>
</td>
</tr>
</table>
는 지금은 AJAX 요청을 전송하고 있습니다. AJAX 요청이 성공적으로 완료되면 내 .price
필드를 채우고 싶습니다.
문제는 AJAX 요청을 보낼 때 다음 요소 (예 : .price
)에 다시 집중할 수 없어 반환 값으로 채울 수 없다는 것입니다. 여기
$("table").on('focusout','.items',function(){
var id=$('.items option:selected').val();
$.ajax({
method:'POST',
url:"get_price",
data:{id:id},
success:function(result){
$(this).closest('.tr_clone').find('.price').text(result));
}
});
});
사전에 fiddle.
감사입니다 : 다음
는내 jQuery를 코드입니다.
당신이'프록시()'당신의 성공 기능이 필요하지 마십시오 적절한
jQuery
객체를 참조해야 할 상황입니까? – Machavity