2015-10-27 152 views
0

我是新的bootstrap编码。我有一个简单的问题,但我找不到答案。计算行内总价值

这就是我需要的:我有单件重量,我需要计算总重量的单位数。

有人可以帮助我吗?

<div class="col-xs-4 control-group form-group"> 
    <div class="controls"> 
     <label>Unit Weight:</label> 
     <input type="text" class="form-control" id="uweight" required data-validation-required-message="Please enter your name."> 
     <p class="help-block"></p> 
    </div> 
</div> 
<div class="col-xs-4 control-group form-group"> 
    <div class="controls"> 
     <label>Units:</label> 
     <input type="text" class="form-control" id="units" required data-validation-required-message="Please enter your name."> 
     <p class="help-block"></p> 
    </div> 
</div> 
<div class="col-xs-4 control-group form-group"> 
    <div class="controls"> 
     <label>Total:</label> 
     <input type="text" class="form-control" id="total" > 
     <p class="help-block"></p> 
    </div> 
</div> 
+0

单程办法http://jsfiddle.net/ny74j496/1/ – Shehary

+0

嗨Ottavio,非常感谢您的及时回复。这可以用[计算]按钮完成吗?用户去巢场总计自动计算? – Risa

+0

你的意思是这样的http://jsfiddle.net/ny74j496/4/ – Shehary

回答

0

您可以使用jQuery将您的输入的值与他们的ID一起拉动,然后执行您的计算。您只需为每个输入ID和计算分配一个变量,然后输出到#total

*我已将您的输入类型从text也更改为number

$(document).ready(function() { 
 
    $(document).on('change', '.form-control', function() { 
 
    var yourWeight, yourUnits, yourTotal; 
 
    yourWeight = $(' #uweight ').val(); 
 
    yourUnits = $(' #units ').val(); 
 
    yourTotal = (parseFloat(yourWeight)) * (parseFloat(yourUnits)); 
 
    $(' #total ').val(yourTotal.toFixed(2)); 
 
    }); 
 
});
body { 
 
    padding-top: 50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="container"> 
 
    <form name="calcForm"> 
 
    <div class="row"> 
 
     <div class="col-xs-4 control-group form-group"> 
 
     <div class="controls"> 
 
      <label>Unit Weight:</label> 
 
      <input type="number" class="form-control" id="uweight" required data-validation-required-message="Please enter your name."> 
 
      <p class="help-block"></p> 
 
     </div> 
 
     </div> 
 
     <div class="col-xs-4 control-group form-group"> 
 
     <div class="controls"> 
 
      <label>Units:</label> 
 
      <input type="number" class="form-control" id="units" required data-validation-required-message="Please enter your name."> 
 
      <p class="help-block"></p> 
 
     </div> 
 
     </div> 
 
     <div class="col-xs-4 control-group form-group"> 
 
     <div class="controls"> 
 
      <label>Total:</label> 
 
      <input type="number" class="form-control" id="total" disabled/> 
 
      <p class="help-block"></p> 
 
     </div> 
 
     </div> 
 
    </div> 
 

 
    </form> 
 
</div>

+0

这是不必要的矫枉过正解决方案,以上的OP要飞行时计算输入值,没有任何按钮来计算,检查OP评论下面的问题,旁注:很大的努力:) – Shehary

+0

嗨,对不起,我把评论发送到错误的地方。 – Risa

+0

是的,最后的代码好多了,只有一个我不得不改变,所以填写表格后我可以正确发送。 id =“total”禁用应该更改为只读。 – Risa

0

添加calculate类给每个输入后面jQuery keyup function结合,当用户释放钥匙,计算可以在运行时被完成,和将输出到#total

$(document).ready(function() { 
 

 
    //Calculate both inputs value on the fly 
 
    $('.calculate').keyup(function() { 
 
     var Tot = parseFloat($('#units').val()) + parseFloat($('#uweight').val()); 
 
     $('#total').val(Tot); 
 
    }); 
 

 
    //Clear both inputs first time when user focus on each inputs and clear value 00 
 
    $('.calculate').focus(function (event) { 
 
     $(this).val("").unbind(event); 
 
    }); 
 

 
    //Remove this it's just for example purpose 
 
    $('.calculate').keypress(function (e) { 
 
     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { 
 
      $("#errmsg").html("Digits Only").show().fadeOut("slow"); 
 
      return false; 
 
     } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" /> 
 
<div class="col-xs-4 control-group form-group"> 
 
    <div class="controls"> 
 
     <label>Unit Weight:</label> 
 
     <input type="text" class="form-control calculate" id="uweight" required value="00"> 
 
     <p class="help-block"></p> 
 
    </div> 
 
</div> 
 
<div class="col-xs-4 control-group form-group"> 
 
    <div class="controls"> 
 
     <label>Units:</label> 
 
     <input type="text" class="form-control calculate" id="units" required value="00"> 
 
     <p class="help-block"></p> 
 
    </div> 
 
</div> 
 
<div class="col-xs-4 control-group form-group"> 
 
    <div class="controls"> 
 
     <label>Total:</label> 
 
     <input type="text" class="form-control" id="total" readonly> 
 
     <p class="help-block"></p> 
 
    </div> 
 
</div> 
 
<div class="col-xs-12 control-group form-group" id="errmsg"></div>

Fiddle

+0

您了解我的回答是在OP发表评论之前发布的吗?你的答案不允许使用十进制符号(ei 1.5)(是的,我确实看到要删除的评论,但它通常没有什么价值),我不相信体重+单位=总重量,它应该是单位重量MULTIPLIED(*)。 – vanburen

+0

@vanburen,可以回答你的评论,但它会开始新的辩论,所以,你是对的,你的答案比我的好得多,你可以赢得冠军杯,欢呼声 – Shehary