1

请在此处查看完整的工作代码:http: //jsfiddle.net/jfZgN/1/

//enable submit button
if (total == 100){
  if ($("input:text").is(":empty")) {
    $("input:text").attr('disabled','disabled'); 
  } else {
    $("input:text").removeAttr('disabled');
  }
  $('.btn').removeAttr('disabled');
} else {
  $('.btn').attr('disabled','disabled');  
  $("input:text").removeAttr('disabled');     
}

我在使用 jQuery 时遇到了 2 个问题:

  1. 当它达到 100% 时,它会禁用所有输入,我只是希望它禁用空输入,因为它们需要能够更改,如果它们更改并低于 100,其他输入将再次变为活动状态。
  2. 如果您输入一堆超过 100% 的数字,它允许您执行此操作并显示例如 120% 我需要它停止在 100%

如果有人可以在这里帮助我真的很有帮助,这是最后一项任务:)

谢谢

4

1 回答 1

0

当总数大于 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);     
}

顺便说一句,通常建议prop()在处理诸如禁用之类的布尔属性时使用它,尽管它不是必需的。

于 2013-05-21T16:50:45.230 回答