我只是需要你对我的问题的帮助,对不起我的问题我只是不知道如何标题我的问题。希望你能理解我的问题。现在就在这里。
顺便提一下,我正在创建采购订单表单。
我创建了一个表格,其中包含文本框,选择和一些按钮。情景是。我有一个包含供应商名称的选择框。选择完成后。将激活自动过滤器。填写所有供应商的信息/详细信息。如地址,联系电话,锡等......
在供应商信息下方,我有一行用于插入订单。 第一列是物品代码,第二列是数量,第三列是价格,最后价格是总和。在表格下面,我有一个文本框,可以计算总计,增值税,折扣等...
现在这是我不知道该怎么做的部分。 选择供应商后,jquery必须检测锡文本框中是否有值。在自动显示值时,我没有问题。但我真正的问题是在计算方面。因为正如我在前面所说的那样,该表是增值税的计算。如果锡文本框不为空,则计算增值税必须触发。这意味着如果锡文本框不为空,则应启用增值税计算。如果为空,则jquery应跳过此部分。
这是我的示例代码:
jquery part
//automatic computation in rows
$('[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));
//NOW HERE'S THE COMPUTATION FOR VAT THAT SHOULD SKIP IF THE TIN IS EMPTY
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));
//END OF COMPUTATION
});
//HERE'S THE AUTO ASSIGN OF VALUES
//AUTO ASSIGN TO SUPPLIER INFO
$('#supplier_list').bind('change', function(){
var var_add_category ='<?php echo site_url("purchaseorder_controller/supplier_details"); ?>';
$.ajax({
type:'POST',
url: var_add_category,
data:{ id: $(this).val() },
dataType:'json',
success:function(d){
var bankname = d['bankname'];
var bankbranch = d['bankbranch'];
$("[name=spaddress]").val(d['spaddr']);
$("[name=tin]").val(d['sptinno']);
$("[name=contactperson]").val(d['pricontactname']);
$("[name=contactnumber]").val(d['sptelno']);
$("[name=bank]").val(bankname + ' - ' + bankbranch);
$("[name=account_name]").val(d['bankacctname']);
$("[name=account_no]").val(d['bankacctno']);
}
});
});
这是 HTML / PHP部分:
Here's the supplier entry, it will trigger to add information in the supplier fields
<select id="supplier_list" style="width: 100%;" name="supplier_id" required="required">
<option value="">--Choose Supplier--</option>
<?php
foreach($resultSelectSupplier->result_array() as $suppliers){
echo "<option value=".$suppliers['spid'].">".$suppliers['spname']."</option>";
}
?>
</select>
.
.
.
//The TIN textbox that need to validate if empty or not(used for computation in VAT)
<td>
<label>TIN #</label>
</td>
<td>
<input type="text" class="k-textbox" name="tin" maxlength="11" id="tin_number" />
</td>
以下是用于循环添加订单商品的行的PHP部分
<?php
$sqlGetCode = "SELECT itemid,itemcode,itemname FROM items";
$resultGetCode = $this->db->query($sqlGetCode);
for($i = 1; $i < 16; $i++){
echo "<tr>";
echo "<td>";
echo "<select name='code[]' id='code{$i}' style='width:100'>";
echo "<option value=''><label>--CHOOSE ITEMS--</label></option>";
foreach($resultGetCode->result_array() as $list){
echo "<option value='".$list['itemid']."'>".$list['itemcode']." --- ".$list['itemname']."</option>";
}
echo "</select>";
echo "</td>";
echo "<td><input type='text' name='qty[]' id='qty{$i}' style='text-align: center' value='' /></td>";
echo "<td><input type='text' name='price[]' id='price{$i}' style='text-align: right;' value='' onblur='' /></td>";
echo "<td><input type='text' name='total[]' id='total{$i}' style='font-family: courier; text-align: right; background-color: lightgray; color: red' readonly='readonly' value='' /></td>";
echo "<tr>";
}
&GT;
最后显示计算项目的文本框
<div align="right">
<table>
<tr>
<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>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>TOTAL SALES:</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>
<tr>
<td></td>
<td></td>
<td>PURCHASE DISCOUNT:</td>
<td><input type="text" class="k-textbox" value="0.00" style="color: red; text-align: right; font-family: courier" name="discount" id="discount" /></td>
</tr>
<tr>
<td></td>
<td></td>
<td>TOTAL AMOUNT DUE:</td>
<td><input type="text" class="k-textbox" value="0.00" style="color: red; text-align: right; font-family: courier" name="total_amt_due" id="total_amt_due" /></td>
</tr>
<input type="hidden" id="sum_of_total" name="sum_of_total" />
</table>
</div>
这是计算公式:
*注意:如果TIN文本框不是空的,则会触发此计算
VATABLE AMOUNT = SUM OF TOTAL / 1.12
VATABLE INPUT = VATABLE AMOUNT * 0.12
TOTAL SALES = VATABLE AMOUNT + VATABLE INPUT
*注意:此计算是固定的,如果没有TIN,则SUM OF TOTAL是计算TOTAL AMOUNT DUE的默认值
Computation for total amount due:
PURCHASE DISCOUNT = The user will input any discount number here
TOTAL AMOUNT DUE = TOTAL SALES - PURCHASE DISCOUNT (should be trigger automatically)
答案 0 :(得分:1)
您可以在onchange
事件中添加条件:
//NOW HERE'S THE COMPUTATION FOR VAT THAT SHOULD SKIP IF THE TIN IS EMPTY
var vatable = 0;
var vatable_amt = 0;
var totalVat = 0;
if($("#tin_number").val().length != 0)
{
var vatable = total / 1.12;
var vatable_amt = vatable * 0.12;
}
totalVat = vatable + vatable_amt;
$('#vatable').val(vatable.toFixed(2));
$("#vatable_amount").val(vatable_amt.toFixed(2));
$("#gtotal").val(totalVat.toFixed(2));
//END OF COMPUTATION
仅当TIN编号的长度大于0时计算增值税。理想情况下,长度应等于10,并且还可以检查TIN编号是否为数字。