具有特定if条件的JQuery/Javascript计算
我在用Javascript进行计算时卡住了。我显示了一些记录行,每行都有计算。实际情况是,系统必须计算数量*单价,并在“总计”字段中填写“总计”。当我从下拉列表中更改货币时,它必须经过我在javascript中给出的一些if条件,而不是接受这些条件。不知道实际的问题是什么。有人能帮忙吗?我正在将html表单放在下面:具有特定if条件的JQuery/Javascript计算,javascript,jquery,Javascript,Jquery,我在用Javascript进行计算时卡住了。我显示了一些记录行,每行都有计算。实际情况是,系统必须计算数量*单价,并在“总计”字段中填写“总计”。当我从下拉列表中更改货币时,它必须经过我在javascript中给出的一些if条件,而不是接受这些条件。不知道实际的问题是什么。有人能帮忙吗?我正在将html表单放在下面: <script type='text/javascript' src='http://code.jquery.com/jquery-2.1.3.js'></
<script type='text/javascript' src='http://code.jquery.com/jquery-2.1.3.js'></script>
<script type="text/javascript">
function isNum(value)
{
return 123;
}
function calcTotals()
{
var total = 0;
var i = 0;
while (document.forms['cart'].elements['unitprice[]'][i])
{
unitpriceObj = document.forms['cart'].elements['unitprice[]'][i];
item_quantityObj = document.forms['cart'].elements['item_quantity[]'][i];
total_inr_valueObj = document.forms['cart'].elements['total_inr[]'][i];
totalObj = document.forms['cart'].elements['total[]'][i];
totalObj.value = parseFloat((item_quantityObj.value*1) * unitpriceObj.value*1);
//Currency_change formulae
var e = document.getElementById("currency_change[]");
var currency_selected = e.options[e.selectedIndex].value;
var price = $(this).find(':selected').data('price');
if (currency_selected.value() == 'INR'){
total_inr_valueObj.value=totalObj.value;
} else if (currency_selected.value() == 'USD'){
total_inr_valueObj.value = totalObj.value * price.value;
} else {
total_inr_valueObj.value = (inrvalue.value / price.value) * totalObj.value;
}
}
i++;
}
return;
}
</script>
</head>
<body>
<form name='cart' method='post' class='single' action='generate_quot_cust_edititems_save_complete.php?tender_id=1' >
<table width="100%" border="1" style="border-collapse: collapse;" cellpadding="1" cellspacing="1">
<tr bgcolor="#E6E6FA">
<td width=4%>SlNo</td>
<td width=10%>Item Name</td>
<td width=4%>Qty</td>
<td width=3%>Units</td>
<td width=4%>Unitprice</td>
<td width=6%>Currency</td>
<td width=6%>Total</td>
<td width=6%>Total INR</td>
</tr>
<tr>
<td width='4%'>
<input size='1' type='hidden' name='id[0]' value='' readonly/>
<input size='1' type='text' name='sl[0]' value='1' readonly/>
</td>
<td width='10%'><input type='text' size='28' id='item_name0' name='item_name[0]' placeholder='filter 3' value='filter 3' /</td>
<td width='4%'><input size='1' class='item_quantity' type='text' name='item_quantity[]' id='item_quantity[]' value='25' /></td>
<td width='3%'><input size='1' class='item_units' type='text' name='item_units[]' id='item_units[]' value='Nos' readonly/></td>
<td width='4%'><input size='5' class='unitprice' type='text' name='unitprice[]' id='unitprice[]' value='' onchange='calcTotals()'/></td>
<td width='6%'>
<select id='currency_change[]' name='currency_change[]'>
<option value=''>select</option>
<option value=USD data-price=1>USD</option>
<option value=INR data-price=65.831111>INR</option>
<option value=GBP data-price=0.643864>GBP</option>
<option value=EUR data-price=0.88469>EUR</option>
<option value=SGD data-price=1.398912>SGD</option>
</select></td>
<td width='8%'><input size='9' type='text' name='total[]' id='total[]' value='' readonly class='total'/></td>
<td width='8%'><input size='7' type='text' id='total_inr[]' name='total_inr[]' value=''/></td>
</tr>
<tr>
<td width='4%'><input size='1' type='hidden' name='id[1]' value='' readonly/><input size='1' type='text' name='sl[1]' value='2' readonly/></td>
<td width='10%'><input type='text' size='28' id='item_name1' name='item_name[1]' placeholder='Filter2' value='Filter2' /</td>
<td width='4%'><input size='1' class='item_quantity' type='text' name='item_quantity[]' id='item_quantity[]' value='15' /></td>
<td width='3%'><input size='1' class='item_units' type='text' name='item_units[]' id='item_units[]' value='Nos' readonly/></td>
<td width='4%'><input size='5' class='unitprice' type='text' name='unitprice[]' id='unitprice[]' value='' onchange='calcTotals()'/></td>
<td width='6%'>
<select id='currency_change[]' name='currency_change[]'>
<option value=''>select</option>
<option value=USD data-price=1>USD</option>
<option value=INR data-price=65.831111>INR</option>
<option value=GBP data-price=0.643864>GBP</option>
<option value=EUR data-price=0.88469>EUR</option>
<option value=SGD data-price=1.398912>SGD</option>
</select>
</td>
<td width='8%'><input size='9' type='text' name='total[]' id='total[]' value='' readonly class='total'/></td>
<td width='8%'><input size='7' type='text' id='total_inr[]' name='total_inr[]' value=''/></td>
</tr>
</table></div>
<br><br>INR Value -><input type="text" class="inrvalue" id="inrvalue" name="inrvalue" value="65.831111">
<br><br>
<table><td><input type='submit' value='--Save Data--' /></td></tr></table></form>
函数isNum(值)
{
返回123;
}
函数calcTotals()
{
var合计=0;
var i=0;
while(document.forms['cart'].elements['unitprice[]'][i])
{
unitpriceObj=document.forms['cart'].elements['unitprice[]'][i];
item_quantityObj=文档.表单['cart'].元素['item_quantity[]'][i];
total_inr_valueObj=文档.表单['cart'].元素['total_inr[]'][i];
totalObj=document.forms['cart'].elements['total[]'][i];
totalObj.value=parseFloat((项目数量Obj.value*1)*单价Obj.value*1);
//货币兑换公式
var e=document.getElementById(“货币变化[]);
var currency_selected=e.options[e.selectedIndex]。值;
var price=$(this).find(':selected').data('price');
如果(选定货币。值()='INR'){
总目标价值=总目标价值;
}否则,如果(选择的货币。值()='USD'){
总价值=总价值*价格价值;
}否则{
总inr值OBJ.value=(inrvalue.value/price.value)*总OBJ.value;
}
}
i++;
}
回来
}
斯尔诺
项目名称
数量
单位
单价
通货
全部的
总印度卢比
我建议您使用AngularJS编号:
以美元计的总额:{{数量*成本}
脚本中存在多个问题
更具jQuery风格的解决方案如下
$('#表:输入')。更改(函数(){
var$tr=$(this).closest('tr'),
$totInr=$tr.find('[name=“total_inr[]”]),
单价=+$tr.find('[name=“unitprice[]”]').val(),
qty=+$tr.find('[name=“item_quantity[]”]).val()| 0,
$currency=$tr.find('[name=“currency\u change[]”选项:选中'),
currency=$currency.val(),
inr=$('#inrvalue').val();
var总计=单价*数量;
$tr.find('[name=“total[]”“]').val(总计);
如果(货币=='INR'){
总计$val(总计);
}否则,如果(货币=‘美元’){
总价(总价*单价);
}否则{
$totInr.val((印度卢比/($currency.data('price')| | 1))*总计);
}
})
斯尔诺
项目名称
数量
单位
单价
通货
全部的
总印度卢比
什么是add_percentageObj
demo:我已经删除了add_percentageObj。这是为了其他一些计算。我已经更新了脚本脚本是否正常工作?什么是inrvalue.value
我没有在Angular Js中工作过。所以不确定。AngularJS容易得多,不用花时间就可以制作出这样的代码。。慢慢来。它现在工作正常。@SujithNair为表id=“table”
-分配了一个id,并删除了onchnage=“”
属性