0

我正在尝试以另一种形式添加一堆相同的形式。我想我很接近,但我不知道断开连接在哪里。我正在尝试汇总表格,然后将表格中的总数汇总到最后。

HTML

<div class="container">
    <div class="row-fluid">
        <div class "span12  exercise1 addWorkout">
            <img src="assets/img/plus01.jpg" class="addWorkout imgButton">Add A Workout</div>
        <!-- <img src="assets/img/minus01.png" class="delWorkout imgButton"> -->
        <div class="span12 workoutList" id="workoutList">
            <div class="cloneMe">
                <div class="row-fluid exercise1 one_rep_calc_container workoutOrgin span4">
                    <div class="oneWorkout">
                        <form>
                            <div class="span4">Weight
                                <input class="weight" type="number" name="weight" size="2">
                            </div>
                            <div class="span4">Reps
                                <input class="reps" type="number" name="reps" size="2">
                            </div>
                            <div class="span4">OneRepMax
                                <input class="one_rep_max" type="number" Name="oneRepMax" size="2">
                            </div>
                            <div class="span4">TotalWeight
                                <input class="totalWeight" type="number" Name="totalWeight" size="2">
                            </div>
                        </form>
                        <!-- <img src="assets/img/plus01.jpg" class="addWorkout exercise1 imgButton">
 -->
                        <img src="assets/img/minus01.png" class="delWorkout imgButton">
                    </div>
                </div>
            </div>
        </div>
        <div class="span12 workoutResults">
            <form>
                <div class="span4">Total
                    <input class="totalAll" id="subtotal" type="number" name="total" size="2">
                </div>
            </form>
        </div>
    </div>
</div> 

jQuery

$('.totalWeight').change(function () {
    var parent = $(this).parents('.workoutResults .one_rep_calc_container');
    var totalWeight = parseInt(parent.find('.totalWeight').val(), 10);
    var totalAll = parseInt(parent.find('.totalAll').val(), 10);

    if (weight > 0) {
        var totalWeightval = 0;
        $('.totalWeight').each(function () {
            totalWeightval += parseFloat(this.value);
        });
        parent.find('.totalAll').val(totalWeightval);
    } else {
        parent.find('.totalAll');
    }
});

关于如何更好地组织我的代码的任何建议也很棒。

4

1 回答 1

0
var parent = $(this).parents('.workoutResults .one_rep_calc_container');

parents查找与选择器匹配的所有可能的父元素。你应该closest改用。


var totalWeight = parseInt(parent.find('.totalWeight').val(), 10);

totalWeight该类有多少输入?一个还是多个?稍后您使用$('.totalWeight').each(...),这表示会有多个,但parent.find('.totalWeight').val()只有在只有一个时才有意义。


if (weight > 0) {

你还没有定义一个变量weight(除非它是一个你没有显示的全局变量),所以这个比较总是false.


parent.find('.totalAll');

仅这一行并没有做任何有用的事情。

于 2013-06-28T09:19:17.223 回答