Попытка создать форму предварительного просмотра и не понимать, почему каждая функция() не работает в этом скрипте. Или работает, но только для последней клонированной строки и игнорирует нулевые значения в ранее клонированных входах.
$('input[id^=Mult_factor_]').each(function () {
var MultFactor = $(this).val();
var TotPoints = $('#Tot_points').val();
var exp1 = "Overload";
var exp2 = "Load is: ";
if (MultFactor < 1 || TotPoints > 100) {
$('#ExemptionLimitsText').text(exp1).show();
$('#PrwTotPointsText').hide();
} else {
$('#ExemptionLimitsText').text(exp2).show();
$('#PrwTotPointsText').text($('#Tot_points').val()).show();
}
});
Мне нужно: если хотя бы одно из клонированных значений MultiFactor равно нулю, отобразите "Перегрузка"
На основании вашего комментария вы хотите отобразить слово "Перегрузка", если поле "Дополнительно" превышает 100 или любое из полей многофакторного поля равно 0.
Тем не менее, ваш цикл продолжает обрабатываться, если выполняется одно из этих условий.
Не используйте цикл, вместо этого выбирайте специально для значения multifaktor, равного 0.
var totalPoints = parseInt($('#Tot_points').val());
if(totalPoints > 100 || $('input[name="MultFaktor"]').filter(function(){return this.value=='0'}).length > 0) {
$('#ExemptionLimitsText').text("Overload").show();
$('#PrwTotPointsText').hide();
} else {
$('#ExemptionLimitsText').text("Load is: ").show();
$('#PrwTotPointsText').text(totalPoints).show();
}
Возвращать false при перегрузке
var valid = true;
var exp1 = "Overload";
var exp2 = "Load is: ";
var TotPoints = $('#Tot_points').val();
$('input[name=MultFaktor]').each(function () {
var $this = $(this);
if ($.trim($(this).val()) == '0' || TotPoints > 100) {
valid = false;
} else {
$('#ExemptionLimitsText').text(exp2).show();
$('#PrwTotPointsText').text($('#Tot_points').val()).show();
}
});
if (valid == false) {
e.preventDefault();
$('#ExemptionLimitsText').text(exp1).show();
$('#PrwTotPointsText').hide();
}