0

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

<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/

4

1 回答 1

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")

希望这会有所帮助!

于 2013-09-27T16:39:29.180 回答