首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在所有文本框都已填充时才计算文本框的值?

如何在所有文本框都已填充时才计算文本框的值?
EN

Stack Overflow用户
提问于 2016-01-10 20:03:35
回答 3查看 85关注 0票数 2

我根据4个文本框的值进行一些计算,但我只想在4个文本框有值时才计算这个值。

听起来很简单,但我想不出一种只在以上条件为真并在每个键上重新计算的情况下运行calc的方法。

代码语言:javascript
复制
$(window).load(function(){
     $('#quantity, #length, #width, #height, #weight').keyup(function () {
         $('#volumetric_weight').val($('#length').val()*$('#width').val()*$('#height').val()*$('#quantity').val()/5000);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-10 20:05:46

尝试使用required属性,仅在每个input有效时计算

代码语言:javascript
复制
$(function() {
  var inputs = $("form input"), product = 1;
  inputs.on("input", function() {
    if (document.forms["calculate"].checkValidity()) {
      inputs.each(function(i, el) {
        product *= el.value;
      });
      $("#volumetric_weight").val(product / 5000);
      product = 1;
    }
  })
})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<form name="calculate">
  <input type="number" id="quantity" required />
  <input type="number" id="length" required />
  <input type="number" id="width" required />
  <input type="number" id="height" required />
  <input type="number" id="weight" required />
</form>

<input type="text" value="" id="volumetric_weight" />

jsfiddle https://jsfiddle.net/b185Lh80/

票数 2
EN

Stack Overflow用户

发布于 2016-01-10 20:07:55

您需要首先检查输入字段是否有值(所有这些值),然后执行您的代码。在您的问题中,您提到了4个文本框,但在您的代码中有5 ;)类似于

代码语言:javascript
复制
    $(window).load(function(){

         $('#quantity, #length, #width, #height, #weight').keyup(function () {
if(!$('#quantity').val() || !$('#length').val() || !$('#width').val() || !$('#height').val() || !$('#weight').val()) return;

             $('#volumetric_weight').val($('#length').val()*$('#width').val()*$('#height').val()*$('#quantity').val()/5000);
票数 1
EN

Stack Overflow用户

发布于 2016-01-10 20:16:00

在计算之前,您可以简单地测试所有值是否都存在:

代码语言:javascript
复制
$(window).load(function(){
  $('#quantity, #length, #width, #height, #weight').change(function () {
    var len = $('#length').val();
        width = $('#width').val();
        height = $('#height').val();
        qty = $('#quantity').val();
    if (&& width && && qty) {
      $('#volumetric_weight').val(len * width * height * qty / 5000);
    }
  });
})

请注意,我使用了@Mathew:将change()替换为keyup()的建议,以便在用户过去时捕获。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34710200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档