Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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
Javascript Jquery表单计算未对齐_Javascript_Jquery_Html - Fatal编程技术网

Javascript Jquery表单计算未对齐

Javascript Jquery表单计算未对齐,javascript,jquery,html,Javascript,Jquery,Html,我试图让这个jQuery数学与我的表单一起工作,我让代码片段很好地工作,但是当转换到所需的表单时,我无法使它对齐以运行所需的数学 任何指向我哪里出错的指针 <script type="text/javascript" src="jquery-1.12.3.js"></script> <script> jQuery(function($) { $(".Qty1, .TradePrice1").change(function() {

我试图让这个jQuery数学与我的表单一起工作,我让代码片段很好地工作,但是当转换到所需的表单时,我无法使它对齐以运行所需的数学

任何指向我哪里出错的指针

<script type="text/javascript" src="jquery-1.12.3.js"></script>
  <script>
    jQuery(function($) {

    $(".Qty1, .TradePrice1").change(function() {
        var total = 0;
        $(".Qty1").each(function() {
            var self = $(this),
                TradePrice1 = self.next(".TradePrice1"),
                subtotal = parseInt(self.val(), 10) * parseFloat(TradePrice1.val(), 10);
            total += (subtotal || 0);
        });
        $("#total1").val(total);
    });

    });
    </script>

  <tr>
    <th><div align="center">
      <input type='text' name='F01u1' id='F01u1' />
    </th>
    <td>
      <input type='text' name='Model1' id='Model1' />
    </td>
    <td>
      <input type='text' name='Description1' id='Description1' />
   </td>
    <td>
      <input type="text" name='TradePrice1' id='TradePrice1' />
   </td>
    <th>
      <input type="text" name='Qty1' id='Qty1' />
    </th>
    <td>
      <input type='text' name='Total1' id='Total1' />
    </div></td>
  </tr>

jQuery(函数($){
$(“.Qty1,.TradePrice1”).change(函数(){
var合计=0;
$(“.Qty1”)。每个(函数(){
var self=$(此),
TradePrice1=self.next(“.TradePrice1”),
小计=parseInt(self.val(),10)*parseFloat(TradePrice1.val(),10);
合计+=(小计| | 0);
});
$(“总计1”).val(总计);
});
});

您的代码中有很多问题

  • 输入将具有无效的重复
    id
    属性。您应该改用类
  • 您有一些无关的
    div
    元素,这些元素除了不需要之外,还没有正确打开或关闭
  • parseFloat()
    只接受一个参数
  • total
    字段不是
    readonly
    ,因此任何人都可以将其修改为所需的任何值
  • 代码计算出所有行的总数,并将其放在每一行的末尾
  • .TradePrice1
    不是
    .Qty1
    的兄弟,因此从
    next()
    调用中永远找不到它
考虑到所有这些,您可以大量改进代码。试试这个:

$(“.qty,.tradeprice”).change(函数(){
var合计=0;
$(“.qty”)。每个(函数(){
变量$qty=$(此),
$row=$qty.最近('tr'),
$tradePrice=$row.find('.tradePrice'),
$subtotal=$row.find('.subtotal');
小计=parseInt($qty.val(),10)*parseFloat($tradePrice.val());
合计+=小计;
$val小计(小计);
});
$('.total').val(总计);
}).change()
输入{
宽度:50px;
}

总数:

如果您想让我们帮助您从表元素中移除不可靠的div标记开始,请提供一个包含代码的JS链接(如果您谈到对齐…,请提供CSS)您可能需要进一步解释您关于“但当转换到所需表单时,我无法使其对齐以运行所需的数学运算”的意思……我已经放入了一个jsBin并为您整理了标记,只是在玩您提供的内容,这是我遇到的问题的最完美答案。非常感谢您的回答,我们会很好地利用您的回答。没问题,很乐意为您提供帮助