总结了一系列不起作用的输入

时间:2013-07-24 20:41:07

标签: jquery

我试图通过对输入系列(每月一个)求和并将它们的总和与模糊事件上的预算数量进行比较来阻止用户输入超出预算的数字,模糊事件存储在名为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
})();

1 个答案:

答案 0 :(得分: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
})();