我有以下CakePHP的代碼之後:
<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>
凡我.tr_clone
是使用jQuery克隆。 在呈現HTML之後以及在克隆.tr_clone
數據之後一次生成以下HTML。
<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>
現在,當focusout
事件的發生select
我發送一個AJAX請求。成功完成AJAX請求後,我想填充我的.price
字段。
問題是,當我發送AJAX請求時,我無法再選擇後面的下一個元素,即.price
,並用返回的值填充它。
以下是我的jQuery代碼:
$("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.
感謝。
你不需要'代理()'你的成功的功能? – Machavity