Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有特定if条件的JQuery/Javascript计算_Javascript_Jquery - Fatal编程技术网

具有特定if条件的JQuery/Javascript计算

具有特定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'></

我在用Javascript进行计算时卡住了。我显示了一些记录行,每行都有计算。实际情况是,系统必须计算数量*单价,并在“总计”字段中填写“总计”。当我从下拉列表中更改货币时,它必须经过我在javascript中给出的一些if条件,而不是接受这些条件。不知道实际的问题是什么。有人能帮忙吗?我正在将html表单放在下面:

   <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=“”
属性