Javascript 多个输入字段的限制和值

Javascript 多个输入字段的限制和值,javascript,jquery,Javascript,Jquery,我需要一些关于javascript或jQuery的帮助 我有三(3)个要过滤的输入字段(三个字段的总和) 3个输入字段的总值必须为100。如果用户填写的内容超过100,则会自动更改总计为100的值 $(document).ready(function(){ $('input[name="text2"]').blur(function(){ $('input[name="text3"]').val(100 - $('input[nam

我需要一些关于javascript或jQuery的帮助

我有三(3)个要过滤的输入字段(三个字段的总和)

3个输入字段的总值必须为100。如果用户填写的内容超过100,则会自动更改总计为100的值

$(document).ready(function(){
    $('input[name="text2"]').blur(function(){
        $('input[name="text3"]').val(100 - $('input[name="text1"]').val() - $('input[name="text2"]').val());
    });
});
你可以看到

text1
text2
text3
以上3个字段的最大值为100

$(document).ready(function(){
    $('input[name="text2"]').blur(function(){
        $('input[name="text3"]').val(100 - $('input[name="text1"]').val() - $('input[name="text2"]').val());
    });
});
例1: 正文1:20; 文本2:30; 文本3:50;(将自动填入50,因为总值必须为100) 例2: 正文1:37; 文本2:60; 文本3:3;(将自动填入3,因为总值必须为100)
谢谢你帮助我,
我需要它:)

这是我能想到的最简单的事情

<head>
<script type="text/javascript">
function check() {
    var sum = 0;
    var inputs = $(".test");
    for (i = 0; i < inputs.length; i++) {
        if (inputs[i].value == parseInt(inputs[i].value)) {
            sum += parseInt(inputs[i].value);
            if (sum > 100) {
                sum -= parseInt(inputs[i].value);
                inputs[i].value =  100-sum;

             }
         }
    }

 }



</script>
</head>
<body>
<input type="text" onkeyup="check()" class="test" size="3"> 
<input type="text" onkeyup="check()" class="test" size="3">
<input type="text" onkeyup="check()" class="test" size="3"> 
在国际海事组织,你可以这样做:

  • 两个输入仅提供两个字符。别再允许了
  • 您还需要检查两个输入的总和是否不应超过101
  • 保持输入2为只读,直到在输入1中输入了内容
  • 保持输入3始终为只读

  • 小提琴:这是我能想到的最简单的事情

    <head>
    <script type="text/javascript">
    function check() {
        var sum = 0;
        var inputs = $(".test");
        for (i = 0; i < inputs.length; i++) {
            if (inputs[i].value == parseInt(inputs[i].value)) {
                sum += parseInt(inputs[i].value);
                if (sum > 100) {
                    sum -= parseInt(inputs[i].value);
                    inputs[i].value =  100-sum;
    
                 }
             }
        }
    
     }
    
    
    
    </script>
    </head>
    <body>
    <input type="text" onkeyup="check()" class="test" size="3"> 
    <input type="text" onkeyup="check()" class="test" size="3">
    <input type="text" onkeyup="check()" class="test" size="3"> 
    
    在国际海事组织,你可以这样做:

  • 两个输入仅提供两个字符。别再允许了
  • 您还需要检查两个输入的总和是否不应超过101
  • 保持输入2为只读,直到在输入1中输入了内容
  • 保持输入3始终为只读
  • 小提琴: 演示:

    演示:

    
    函数检查(){
    var总和=0;
    var输入=$(“.test”);
    对于(i=0;i100){
    sum-=parseInt(输入[i].值);
    输入[i]。值=100和;
    }
    }
    }
    }
    
    
    函数检查(){
    var总和=0;
    var输入=$(“.test”);
    对于(i=0;i100){
    sum-=parseInt(输入[i].值);
    输入[i]。值=100和;
    }
    }
    }
    }
    
    我正在检查所有文本框的总和是否超过100,然后在最后输入的文本框中进行更正,并禁用下一个文本框



    我正在检查所有文本框的总和是否超过100,然后在最后输入的文本框中进行更正,禁用下一个文本框。

    也从fiddle添加代码!首先,尽你最大的努力,我们会帮你解决遇到的问题。你尝试过什么吗?@PalashMondal,我不知道如何构建它,我已经在另一个地方搜索过这个案例,但我没有找到类似的案例。如果text1和text2的总和超过100,你是允许文本3中的负值还是调整文本1和文本2中的值?也可以从fiddle中添加代码!首先,尽你最大的努力,我们会帮你解决遇到的问题。你尝试过什么吗?@PalashMondal,我不知道如何构建它,我已经在另一个地方搜索过这个案例,但我没有找到类似的案例。如果text1和text2的总和超过100,你们在文本3中允许负值还是在文本1和2中允许调整值?我已经测试过了,我仍然可以在第一个字段中输入>100。。。我试图访问你的小提琴链接,但无法访问,因此我已将模糊事件更改为按键事件,请立即尝试尝试>,我仍然可以在第一个字段上输入超过“100”。。。我不知道为什么…谢谢你的代码,我会根据你的代码修改算法。再次感谢布山:)我已经测试过了,我仍然可以在第一个字段中输入>100。。。我试图访问你的小提琴链接,但无法访问,因此我已将模糊事件更改为按键事件,请立即尝试尝试>,我仍然可以在第一个字段上输入超过“100”。。。我不知道为什么…谢谢你的代码,我会根据你的代码修改算法。再次感谢布山:)@ImamHerlambang它不起作用了。非常具有描述性。。。是 啊抱歉,但代码确实不起作用。。。我也检查过JSFIDLE。也许你可以展示一下如何实现这些代码?我是这里的新手。。。谢谢,它起作用了。谢谢很抱歉,当我尝试在第一个输入中输入“100”时,第二个和第三个输入仍然可以填充。是否有其他修复方法?@ImamHerlambang使用
    检查(+this.value==100)
    并执行所需操作,例如,使用
    .prop(“disabled”,true)
    禁用另一个字段,或重置当前字段的值。@ImamHerlambang它不工作。非常具有描述性。。。是 啊抱歉,但代码确实不起作用。。。我也检查过JSFIDLE。也许你可以展示一下如何实现这些代码?我是这里的新手。。。谢谢,它起作用了。谢谢很抱歉,当我尝试在第一个输入中输入“100”时,第二个和第三个输入仍然可以填充。有其他方法修复吗?@ImamHerlambang使用
    检查(+this.value==100)
    并执行您需要的操作,例如,使用
    .prop(“disabled”,true)
    禁用另一个字段,或者重置当前字段的值。我已经进行了第二次测试,这很有效。我只是想知道第一个输入值是否为“100”,另一个值是否为“0”。你能做到吗?我已经做了第二次测试,这很有效。我只是想知道第一个输入值是否为“100”,另一个值是否为“0”。你能做到吗?
       $(function(){
    
    $('input[name="text1"]').keyup(function(){
    
        var text1Value = $('input[name="text1"]').val();
        if(text1Value >=100)
        {
         $('input[name="text1"]').val(100);
         $('input[name="text2"]').val('');
         $('input[name="text3"]').val('');
         $('input[name="text2"]').attr('disabled','disabled'); 
         $('input[name="text3"]').attr('disabled','disabled'); 
        }
        else
        {
         $('input[name="text2"]').removeAttr('disabled'); 
         $('input[name="text3"]').removeAttr('disabled');
        }
    });
    $('input[name="text2"]').keyup(function(){
        var text1Value = parseInt($('input[name="text1"]').val());
        var text2Value = parseInt($('input[name="text2"]').val());
        if(isNaN(text1Value))
        {
         text1Value =0;
        }
    
        if(isNaN(text2Value))
        {
         text2Value =0;
        }
        var total = text1Value + text2Value;
    
        if(total >=100)
        {
         $('input[name="text2"]').val(100-text1Value);
         $('input[name="text3"]').val('');
         $('input[name="text3"]').attr('disabled','disabled'); 
        }
        else
        {
         $('input[name="text3"]').removeAttr('disabled');
         $('input[name="text3"]').val(100-total);
        }
    });
    
    });