JQuery添加(数学)输入值

时间:2014-03-28 16:48:56

标签: javascript jquery html

我有一个html表单,我想只显示表单的最后一部分,如果所有其他输入的值是< = 500.这是一些简单的html,我的稍微复杂一点,但它应该同样的想法:

<div id="addSection">
  <input type="text" id="retire" />  
  <input type="text" id="child" />
  <input type="text" id="military" />
  <input type="text" id="nurse" />
  <input type="text" id="other" /> 
</div>
<div id="random" class="hidden">
<input type="text">  
</div>

这里我的jQuery并没有接近工作:)

$('#addSection :input').keyup(function(){        
  $('#addSection').each(function(){
    var totalAmt = 0;
    $(this).find('input').each(function(i,n){
      totalAmt += parseInt($(n).val(), 10)
    });
  });
});

//if totalAmt <= 500 then $('#random').show();

关于如何在用户浏览表单时添加它的任何想法?感谢您的帮助,如果您有任何疑问,我会尽快回答。

3 个答案:

答案 0 :(得分:4)

我建议(在审核并随后重写我以前的尝试时):

$('#addSection').on('keyup', function(){
    var total = $(this).children().map(function(){
        return parseInt(this.value,10) || 0;
    }).get().reduce(
           function(a, b){
             return  parseInt(a,10) + parseInt(b,10);
           });
    $('#random').toggle(total <= 500);
}).trigger('keyup');

JS Fiddle demo

参考文献:

答案 1 :(得分:1)

这应该可以解决问题:

$('#addSection :input').keyup(function(){        
    var totalAmt = 0
  $('#addSection :input').each(function(){
    totalAmt += parseInt($(this).val(), 10) || 0   

  });
   $('#random').toggle(totalAmt <= 500);
});

实例:http://jsfiddle.net/ZL3q4/2/

答案 2 :(得分:0)

试试这个:

<div id="addSection">
    <input type="text" id="retire" />
    <input type="text" id="child" />
    <input type="text" id="military" />
    <input type="text" id="nurse" />
    <input type="text" id="other" />
</div>
<div id="random" style="display: none;">
    <input type="text">
</div>


$('#addSection :input').keyup(function () {
    var totalAmt = 0;
    $('#addSection :input').each(function (i, n) {
        if (parseInt($(n).val(), 10)) totalAmt += parseInt($(n).val(), 10);
    });
    if (totalAmt > 500) $("#random").show();
    else $("#random").hide();
});