计算总ins JQuery

计算总ins JQuery,jquery,asp.net,html,Jquery,Asp.net,Html,我在早些时候发布了这个问题,但有点不同。我正在采取一种新的方法,但它似乎不起作用。我想知道我是否能得到一些帮助来找出我的错误。这样做的目的是在用户键入值时或从文本框中移除焦点时进行计算 ASP: <asp:TextBox runat="server" ID="txtAmount1" CssClass="narrow" text="0.00" ClientIDMode="Static" class="PAmount" /> <asp:TextBox runat="se

我在早些时候发布了这个问题,但有点不同。我正在采取一种新的方法,但它似乎不起作用。我想知道我是否能得到一些帮助来找出我的错误。这样做的目的是在用户键入值时或从文本框中移除焦点时进行计算

ASP:

 <asp:TextBox runat="server" ID="txtAmount1" CssClass="narrow"  text="0.00"  ClientIDMode="Static" class="PAmount"  /> 
 <asp:TextBox runat="server" ID="txtAmount2" CssClass="narrow"  text="0.00"  ClientIDMode="Static" class="PAmount"  /> 
 <asp:TextBox runat="server" ID="txtAmount3" CssClass="narrow"  text="0.00"  ClientIDMode="Static" class="PAmount"  /> 
  <asp:Literal ID="ltlGTotal" runat="server" Text="0.00" ></asp:Literal>
  <asp:TextBox runat="server" ID="txtTotalCost" CssClass="narrow"/>

JS:

$('.PAmount').keyup(函数(){
总风险价值;
对于(var i=0;i<$(this).length;++i){
total+=parseInt($(this)[i].val());
}
$('ltlGTotal').val(总计);
$('txtotalcost').val(总计);
});

您可以使用“窄”css类添加更改事件,如下所示:

$('.narrow').change(function () {
  var total;
   for (var i = 0; i < $(this).length; ++i) {
      total += parseInt($(this)[i].val());
   }
   $('#ltlGTotal').val(total);
  $('#txtTotalCost').val(total);
});
$('.窄带')。更改(函数(){
总风险价值;
对于(var i=0;i<$(this).length;++i){
total+=parseInt($(this)[i].val());
}
$('ltlGTotal').val(总计);
$('txtotalcost').val(总计);
});

希望有帮助

您可以使用“窄”css类添加更改事件,如下所示:

$('.narrow').change(function () {
  var total;
   for (var i = 0; i < $(this).length; ++i) {
      total += parseInt($(this)[i].val());
   }
   $('#ltlGTotal').val(total);
  $('#txtTotalCost').val(total);
});
$('.窄带')。更改(函数(){
总风险价值;
对于(var i=0;i<$(this).length;++i){
total+=parseInt($(this)[i].val());
}
$('ltlGTotal').val(总计);
$('txtotalcost').val(总计);
});

希望能有所帮助

以下是我要做的:

var $amountBoxes = $(":text.PAmount"),
    $grandTotal = $("#ltlGTotal"),
    $totalCost = $("#txtTotalCost");

$amountBoxes.on("keyup change", calculateTotal);

function calculateTotal()
{
    var total = 0;
    $amountBoxes.each(function () 
    {
        total += parseInt($(this).val());
    });
    $grandTotal.text(total.toString());
    $totalCost.val(total.toString());
};

以下是我要做的:

var $amountBoxes = $(":text.PAmount"),
    $grandTotal = $("#ltlGTotal"),
    $totalCost = $("#txtTotalCost");

$amountBoxes.on("keyup change", calculateTotal);

function calculateTotal()
{
    var total = 0;
    $amountBoxes.each(function () 
    {
        total += parseInt($(this).val());
    });
    $grandTotal.text(total.toString());
    $totalCost.val(total.toString());
};

我不建议将Total文本框设置为可编辑

此外,让用户将价值输入到总价值中是没有意义的

例如,1+2+3=8(总计将不正确)

FYI:您不能同时拥有
CssClass=“窄”和
class=“PAmount”
;这不是一个正确的格式

<asp:TextBox runat="server" ID="txtAmount1" CssClass="narrow" 
  Text="0.00" ClientIDMode="Static"/>
<asp:TextBox runat="server" ID="txtAmount2" CssClass="narrow" 
  Text="0.00" ClientIDMode="Static"/>
<asp:TextBox runat="server" ID="txtAmount3" CssClass="narrow" 
  Text="0.00" ClientIDMode="Static"/>
<asp:Label ID="ltlGTotal" runat="server" Text="0.00" ClientIDMode="Static" />
<asp:TextBox runat="server" ID="txtTotalCost" ClientIDMode="Static" />
<asp:DropDownList runat="server" ID="DropDownList1" AutoPostBack="True">
    <asp:ListItem Text="One" Value="1"/>
    <asp:ListItem Text="Two" Value="2"/>
</asp:DropDownList>
<script>
    $(document).ready(function () {
        $('#ltlGTotal').html($('#txtTotalCost').val());

        $('.narrow').keyup(calculate);

        $('.total').keyup(calculate);

        function calculate() {
            var total = 0;
            $('.narrow').each(function () {
                if ($(this).val().length > 0) {
                    total += parseInt($(this).val());
                }
            });
            $('#ltlGTotal').html(total);
            $('#txtTotalCost').val(total);
        }
    });
</script>

$(文档).ready(函数(){
$('ltlGTotal').html($('txtotalcost').val());
$('.slow').keyup(计算);
$('.total').keyup(计算);
函数计算(){
var合计=0;
$('.窄带')。每个(函数(){
如果($(this.val().length>0){
total+=parseInt($(this.val());
}
});
$('ltlGTotal').html(总计);
$('txtotalcost').val(总计);
}
});

我不建议将Total文本框设置为可编辑

此外,让用户将价值输入到总价值中是没有意义的

例如,1+2+3=8(总计将不正确)

FYI:您不能同时拥有
CssClass=“窄”和
class=“PAmount”
;这不是一个正确的格式

<asp:TextBox runat="server" ID="txtAmount1" CssClass="narrow" 
  Text="0.00" ClientIDMode="Static"/>
<asp:TextBox runat="server" ID="txtAmount2" CssClass="narrow" 
  Text="0.00" ClientIDMode="Static"/>
<asp:TextBox runat="server" ID="txtAmount3" CssClass="narrow" 
  Text="0.00" ClientIDMode="Static"/>
<asp:Label ID="ltlGTotal" runat="server" Text="0.00" ClientIDMode="Static" />
<asp:TextBox runat="server" ID="txtTotalCost" ClientIDMode="Static" />
<asp:DropDownList runat="server" ID="DropDownList1" AutoPostBack="True">
    <asp:ListItem Text="One" Value="1"/>
    <asp:ListItem Text="Two" Value="2"/>
</asp:DropDownList>
<script>
    $(document).ready(function () {
        $('#ltlGTotal').html($('#txtTotalCost').val());

        $('.narrow').keyup(calculate);

        $('.total').keyup(calculate);

        function calculate() {
            var total = 0;
            $('.narrow').each(function () {
                if ($(this).val().length > 0) {
                    total += parseInt($(this).val());
                }
            });
            $('#ltlGTotal').html(total);
            $('#txtTotalCost').val(total);
        }
    });
</script>

$(文档).ready(函数(){
$('ltlGTotal').html($('txtotalcost').val());
$('.slow').keyup(计算);
$('.total').keyup(计算);
函数计算(){
var合计=0;
$('.窄带')。每个(函数(){
如果($(this.val().length>0){
total+=parseInt($(this.val());
}
});
$('ltlGTotal').html(总计);
$('txtotalcost').val(总计);
}
});
试试这段代码

$('.PAmount').keyup(function () {
    var total=0;
    $('.PAmount').each(function () {
        total += parseInt($(this).val());
    });     
    $('#ltlGTotal').val(total);
    $('#txtTotalCost').val(total);
});
试试这个代码

$('.PAmount').keyup(function () {
    var total=0;
    $('.PAmount').each(function () {
        total += parseInt($(this).val());
    });     
    $('#ltlGTotal').val(total);
    $('#txtTotalCost').val(total);
});


@黑道猴一世did@theshadowmonkey我做了,问题是,我有其他文本框与相同的CssClass名称问题是,我有其他文本框与相同的CssClass名称name@Robertpurpose-那它怎么办?完全不起作用?它在小提琴演示中起作用。由于.NET使用
ctl00\uu
预挂起id,您可能必须调整总计字段的选择器。我的id是静态的。我知道大多数时候我用JFiddle测试东西,然后把它传递给真实的系统,它就会出现问题。我仍在努力找出问题出在哪里,因为我相信这是解决我问题的一个令人惊奇的办法question@Robertpurpose-是的,这让人困惑。尝试注释文字控制部分,
$grandTotal=$(“#ltlGTotal”)、
$grandTotal.text(total.toString())。也许这就是把事情搞砸的原因。@Robertpurpose-我很困惑,你的总文字控制和总成本文本框之间的区别是什么。哦,在我的实际表格上。每个金额框上方都有下拉列表,然后文字中会显示总计。然后在total文本框中显示的是一个总计,它将显示在我的帐户的信用卡部分form@Robertpurpose-那它怎么办?完全不起作用?它在小提琴演示中起作用。由于.NET使用
ctl00\uu
预挂起id,您可能必须调整总计字段的选择器。我的id是静态的。我知道大多数时候我用JFiddle测试东西,然后把它传递给真实的系统,它就会出现问题。我仍在努力找出问题出在哪里,因为我相信这是解决我问题的一个令人惊奇的办法question@Robertpurpose-是的,这让人困惑。尝试注释文字控制部分,
$grandTotal=$(“#ltlGTotal”)、
$grandTotal.text(total.toString())。也许这就是把事情搞砸的原因。@Robertpurpose-我很困惑,你的总文字控制和总成本文本框之间的区别是什么。哦,在我的实际表格上。每个金额框上方都有下拉列表,然后文字中会显示总计。然后在total文本框中显示的是一个总计,它将显示在我的帐户的信用卡部分form@Win....the使用.窄框的问题是,在实际表单上,我有其他具有相同类的框。我将为这些框创建另一个类。它适用于文本框,但由于某些原因,文字没有变化,我无意中删除了
ltlGTotal的
ClientIDMode=“Static”
,实际上我在页面顶部声明,在我意识到我将在整个页面中使用它之后。我仍在试图找出故障可能出在哪里been@Win....the使用.窄框的问题是,在实际表单上,我有其他带有该s的框