1

我试图通过对一系列输入(每个月一个)求和并将它们的总和与存储在名为 topLimit 的隐藏输入字段中的模糊事件上的预算数进行比较来防止用户输入超出预算的数字。

由于我必须在页面上多次执行此操作,因此我创建了一个函数,我将分配给一组特定每月输入的类的名称传递给该函数。对于测试,我会提醒结果并且我得到“未定义”。是不是我不能使用函数参数作为选择器?是别的吗?

function TotalInputs(name){
    var numb = 0;
    $('.'+name).each(function(e){
         numb = numb + parseFloat($(this).val());
    });
    return numb;
} // end TotalInputs function

(function() {
    var ttlFields = 0;

    $(document).on('blur', '.eSAM', function(e){
      var upperLimit = $('input[name="topLimit"]').val();
      ttlFields = TotalInputs('eSAM');
      alert(ttlFields);
    }); // end eSAM blur
})();
4

1 回答 1

2

您可以创建var numb = 0;一个全局变量,也可以将您的变量放在TotalInputs匿名函数中。

所以,这样做:

(function() {
    var ttlFields = 0;
    var numb = 0;

    function TotalInputs(name){
        $('.'+name).each(function(e){
             numb = numb + parseFloat($(this).val());
        });
        return numb;
    } // end TotalInputs function

    $(document).on('blur', '.eSAM', function(e){
      var upperLimit = $('input[name="topLimit"]').val();
      ttlFields = TotalInputs('eSAM');
      alert(ttlFields);
    }); // end eSAM blur
})();

或者像这样:

var numb = 0;

function TotalInputs(name){
    $('.'+name).each(function(e){
         numb = numb + parseFloat($(this).val());
    });
    return numb;
} // end TotalInputs function

(function() {
    var ttlFields = 0;

    $(document).on('blur', '.eSAM', function(e){
      var upperLimit = $('input[name="topLimit"]').val();
      ttlFields = TotalInputs('eSAM');
      alert(ttlFields);
    }); // end eSAM blur
})();
于 2013-07-24T20:50:45.150 回答