.each функция () для клонированных входов

0

Попытка создать форму предварительного просмотра и не понимать, почему каждая функция() не работает в этом скрипте. Или работает, но только для последней клонированной строки и игнорирует нулевые значения в ранее клонированных входах.

$('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();
    }
});

JSfiddle

Мне нужно: если хотя бы одно из клонированных значений MultiFactor равно нулю, отобразите "Перегрузка" Изображение 174551

  • 1
    Не понимаю, что вы пытаетесь сделать ... Скопируйте "Mult_factor_" в форме предварительного просмотра?
  • 2
    Можете ли вы объяснить немного больше о том, что вы пытаетесь достичь?
Показать ещё 4 комментария
Теги:

2 ответа

1
Лучший ответ

На основании вашего комментария вы хотите отобразить слово "Перегрузка", если поле "Дополнительно" превышает 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();
}
  • 0
    Преимущество этого состоит в том, что он даже не потрудится искать значения MultFaktor, равные 0, если общее количество очков превышает 100.
  • 0
    Это решение работает хорошо, спасибо.
0

Возвращать 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();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню