Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery滑块超过100%并出现禁用空输入的问题_Jquery - Fatal编程技术网

jQuery滑块超过100%并出现禁用空输入的问题

jQuery滑块超过100%并出现禁用空输入的问题,jquery,Jquery,请参阅此处的完整工作代码: 我对jQuery有两个问题: 当它达到100%时,它将禁用所有输入,我只希望它禁用空输入,因为它们需要能够更改,如果它们更改并低于100,其他输入将再次激活 如果你输入一组超过100%的数字,它允许你这样做,并显示例如120%,我需要它停止在100% 真的很有帮助如果有人能帮我,这是最后一项任务:) 谢谢当总数大于100时,您需要进行测试。在下面的示例中,如果总数超过100,我将该值设置为0,不过您可以将自己的逻辑放进去 如果该值等于100,则迭代输入并禁用那些没有值

请参阅此处的完整工作代码:

我对jQuery有两个问题:

  • 当它达到100%时,它将禁用所有输入,我只希望它禁用空输入,因为它们需要能够更改,如果它们更改并低于100,其他输入将再次激活
  • 如果你输入一组超过100%的数字,它允许你这样做,并显示例如120%,我需要它停止在100%
  • 真的很有帮助如果有人能帮我,这是最后一项任务:)


    谢谢

    当总数大于100时,您需要进行测试。在下面的示例中,如果总数超过100,我将该值设置为0,不过您可以将自己的逻辑放进去

    如果该值等于100,则迭代输入并禁用那些没有值的输入

    请看一个工作示例

    if (total == 100){
        $("input:text").each(function(index) {
            var input = $(this);
            input.prop('disabled', input.val().length === 0);
        });
        $('.btn').prop('disabled', false);
    } else {
        if(total > 100) {
            total = total - thisVal;
            $(this).val(0);
            alert('Total must be less than 100');
            //other logic here
        }
        $('.btn').prop('disabled', true);  
        $("input:text").prop('disabled', false);     
    }
    

    另一方面,通常建议在处理布尔属性(如disabled)时使用
    prop()
    ,尽管这不是必需的。

    在%上工作,所以不进行检查,但似乎仍然禁用具有值的输入?感谢您的帮助。BTW刚刚看到您的评论,有没有关于如何解决禁用问题的想法?我更新了我的答案,包括在值===100时禁用输入。感谢您的关注@J08691问题1很容易解决,但您想如何处理问题2?如果用户键入的值使总数超过100%,那么他们输入的文本会发生什么变化?
    if (total == 100){
        $("input:text").each(function(index) {
            var input = $(this);
            input.prop('disabled', input.val().length === 0);
        });
        $('.btn').prop('disabled', false);
    } else {
        if(total > 100) {
            total = total - thisVal;
            $(this).val(0);
            alert('Total must be less than 100');
            //other logic here
        }
        $('.btn').prop('disabled', true);  
        $("input:text").prop('disabled', false);     
    }