我创建了一个表单列表更新。每行都有一组文本框。根据我的查询结果,每个文本框都有自己的值。在每一列的末尾都有一个选择框。您可以选择有效或无效。我的目标很简单,如果用户为每一行选择一个无效状态。数量和价格以及总计的值将设置为 0,并且以下计算将根据已设置为选择的项目/行减少。如果无效,所选行将被扣除到小计金额。
问题:
- 在触发用户是否将状态设置为无效时,我没有问题,但如果用户触发选择返回有效。我无法再次找回我的价值。
- 如果用户设置为无效,则小计中不扣除总计。因为我不知道该怎么做。
下面是我的一些代码:
Here is my jquery section:
$('[id^=qty],[id^=price]').on('change',function() {
var index = this.id.match(/\d+/)[0];
var qty = parseInt($('#qty'+index).val());
var price = parseFloat($('#price'+index).val());
var total = 0;
$('#total'+index).val((qty * price ? qty * price : 0).toFixed(2));
var total = 0;
$('[id^=total]').each(function(index){
total+=parseFloat($(this).val()?$(this).val():0);
});
$('#sum_of_total').val(total.toFixed(2));
var vatable = total / 1.12;
var vatable_amt = vatable * 0.12;
var totalVat = vatable + vatable_amt;
$('#vatable').val(vatable.toFixed(2));
$("#vatable_amount").val(vatable_amt.toFixed(2));
$("#gtotal").val(totalVat.toFixed(2));
});
$('[id^=status_validate]').on('change',function(){
var index = this.id.match(/\d+/)[0];
var status_set = $("#status_validate"+index).val();
var price_set = $("#price"+index).val();
var qty_set = $("#qty"+index).val();
var total_set = $("#total"+index).val();
var temp_price = price_set;
var temp_qty = qty_Set;
var temp_total = tota_set;
console.log(status_set);
if(status_set == 'VALID'){
$("#price"+index).val(price_set);
$("#qty"+index).val(price_set);
$("#total"+index).val(price_set);
}else{
price_set = 0.00;
qty_set = 0.00;
total_set = 0.00;
$("#price"+index).val(price_set);
$("#qty"+index).val(price_set);
$("#total"+index).val(price_set);
}
});
这是循环部分
$val = 0;
foreach($order_info_list->result_array() as $details){
$val++;
$vatable_input = $details['vatable_input'];
$vatable_amount = $details['vatable_amount'];
$total_amount_due = $details['total_amount_due'];
echo "<tr>";
echo "<td><input type='text' name='itemdesc[]' value = ".$details['item_desc']." /></td>";
echo "<td><input type='text' name='qty[]' value=".$details['item_qty']." id='qty{$val}' /></td>";
echo "<td><input type='text' name='price[]' value=".number_format($details['item_price'],2)." id='price$val' /></td>";
echo "<td><input type='text' name='total[]' class='k-textbox' id='total{$val}' style='font-family: courier; text-align: right; background-color: lightgray; color: red' readonly='readonly' value='".$details['total']."' /></td>";
echo "<td width='30%'>";
$stat = $details['status'];
echo "<select name='status[]' id='status_validate[$val]'>";
if($stat == 'VALID'){
echo "<option value='VALID' selected='selected'>VALID</option>";
echo "<option value='INVALID'>INVALID</option>";
}else{
echo "<option value='VALID'>VALID</option>";
echo "<option value='INVALID' selected='selected'>INVALID</option>";
}
echo "</select>";
echo "</td>";
echo "</tr>";
$idx = $details['poid'];
echo "<input type='hidden' name='idx[]' value='{$idx}' />";
$code_x = $details['order_code'];
}
下面是总计算的显示
<tr>
<td></td>
<td></td>
<td></td>
<td>VATable Amount:</td>
<td><input type="text" class="k-textbox" value="0.00" readonly="readonly" style="color: red; text-align: right; font-family: courier" name="vatable" id="vatable" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>VAT Input:</td>
<td><input type="text" class="k-textbox" value="0.00" readonly="readonly" style="color: red; text-align: right; font-family: courier" name="vatable_amount" id="vatable_amount" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>TOTAL AMOUNT DUE:</td>
<td><input type="text" class="k-textbox" value="0.00" readonly="readonly" style="color: red; text-align: right; font-family: courier" name="subtotal" id="gtotal" /></td>
</tr>