jQuery输入选择 - 在转发器中添加总计

时间:2013-09-27 14:38:03

标签: javascript jquery .net

有两个像这样定义的文本框,它们位于转发器中:

<asp:TextBox ID="txtHours" runat="server" CssClass="text misch"   Width="50px" Text='<%# Eval("laborHours") %>'/>
<asp:TextBox ID="txtCosts" runat="server" CssClass="text misc"   Width="50px" Text='<%# Eval("totalCosts") %>'/>

我还有两个盒子,我想把总数:

<asp:TextBox ID="txtMiscH" runat="server" CssClass="text hours" Width="200px" />
<asp:TextBox ID="txtMisc" runat="server" CssClass="text add" Width="200px" />

当转发器中的值发生变化时,我想将它们相加并放入相应的总框中。

这就是我现在的位置:

//add up miscaleneous mnumbers
    //dollar amoungs
    $("input[class~='misc']").change(function (event) {
        var sum = 0;
        var num = 0;
        $("input[class~='misc']").each(function (event) {
            num = parseInt($(this).val()) || 0;
            sum = sum + num;
        });
        $("input[id*='txtMisc']").val(sum);
        $("input[class~='add']").trigger('change');
    });

    //hours
    $("input[class~='misch']").change(function (event) {
        var sum = 0;
        var num = 0;
        $("input[class~='misch']").each(function (event) {
            num = parseInt($(this).val()) || 0;
            sum = sum + num;
        });
        $("input[id*='txtMiscH']").val(sum);
    });

但它看起来不像第一个选项。

我也看到有不同的方式来选择输入

input[class~input[class*input[class^

我正在使用错误的吗?

我猜因为misc也是misch的一部分,它会进行数小时的计算,即使我只更新了misc成本框。请你。重命名类类型是解决这个问题的最简单方法吗?

http://jsfiddle.net/SKYDr/

1 个答案:

答案 0 :(得分:0)

您可以使用直接指示dom元素的选择器,而不是使用$("input[class~='misc']")

$("input.misc")
$("input.misc[type=text]")
$("input.misc:text")

对于input[id*='txtMiscH']例如

也可以这样做
$("input#txtMiscH")
$("input#txtMiscH[type=text]")
$("input#txtMiscH:text")

希望这会有所帮助!!