Если галочку снимаю, то идет сброс на ноль.
Кнопка при условии
dis(btn, sum <= 100);
Активна
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<p id="wtotal">0</p>
<form action="https://">
<input type="checkbox" name="out[]" class="out"/>
<input type="text" name="w[]" class="form-control" required disabled value="0" />
<input type="checkbox" name="out[]" class="out"/>
<input type="text" name="w[]" class="form-control" required disabled value="0" />
<input type="checkbox" name="out[]" class="out"/>
<input type="text" name="w[]" class="form-control" required disabled value="0" />
<button type="submit" class="btn btn-primary btn-lg btn-block" disabled>Выбрать</button>
</form>
<script>
var form = document.querySelector("form"),
check = form.querySelectorAll(".out"),
num = form.querySelectorAll(".form-control"),
btn = form.querySelector(".btn"),
p = document.querySelector("#wtotal"),
dis = function(elem, removeDisabled) {
removeDisabled ? elem.removeAttribute("disabled") : elem.setAttribute("disabled", "disabled")
},
total = function(event) {
var sum = 0;
check.forEach(function(inp, i) {
var elem = num[i], checked = inp.checked;
elem.value = checked ? +elem.value || 0 : 0;
dis(elem, checked);
sum += +elem.value
});
dis(btn, sum <= 100);
p.innerHTML = sum;
return sum <= 100
};
form.addEventListener("change", total);
form.addEventListener("input", total);
form.addEventListener("submit", total);
</script>
</body>
</html>