Пройтись по input'там и сверить введенные данные с разными массивами.
Здравствуйте.
Есть вот таких 18 input'тов ![]() Первые 5 нужно сверить с массивом firstPi[] (это первая колонка 5 элементов) Вторые 5 нужно сверить с массивом secondPi[] (это вторая колонка 5 элементов) Третье 5 нужно сверить с массивом defPi[] (это третья колонка 5 элементов) А для остальных последних 3 input'тов, которые расположены внизу, у меня для каждой из них функции с формулами. В общем на данный момент имеется вот такой через жопу написанный код мною )). $('.step-but-3').on('click', function(){ var isTrue = true; $(".p1").each(function(i, el){ var v = f1ToFloat(el.value); if(v != firstPi[i]){ alert("Неправильный P'"+(i+1)+". Исправьте и заново нажмите на кнопку."); isTrue = false; $(el).addClass('error'); return false; } else{ $(el).removeClass('error'); } }); if(!isTrue) return; $(".p2").each(function(i, el){ var v = f1ToFloat(el.value); if(v != secondPi[i]){ alert("Неправильный P''"+(i+1)+". Исправьте и заново нажмите на кнопку."); isTrue = false; $(el).addClass('error'); return false; } else{ $(el).removeClass('error'); } }); if(!isTrue) return; $(".pid").each(function(i, el){ var v = f1ToFloat(el.value); if(v != defPi[i]){ alert("Неправильный P"+(i+1)+" общ. Исправьте и заново нажмите на кнопку."); $(el).addClass('error'); return false; } else{ $(el).removeClass('error'); } }); if(!isTrue) return; if(f1ToFloat($(".pi2-1").val()) != pi2f()){ $(".pi2-1").addClass('error'); alert("Неправильный P2' Исправьте и заново нажмите на кнопку."); return false; } else { $('.pi2-1').removeClass('error'); } if(!isTrue) return; if(f1ToFloat($(".pi2-2").val()) != pi2s()){ $(".pi2-2").addClass('error'); alert("Неправильный P2'' Исправьте и заново нажмите на кнопку."); return false; } else { $('.pi2-2').removeClass('error'); } if(!isTrue) return; if(f1ToFloat($(".pi2-def").val()) != pi2d()){ $(".pi2-def").addClass('error'); alert("Неправильный P2 общ Исправьте и заново нажмите на кнопку."); return false; } else { $('.pi2-def').removeClass('error'); } alert('Значение введены верно.'); }); Соответственно здесь видно, что при нажатии на кнопку, она проверяет вначале 5 элементов (класс .p1), затем другие столбцы и тд, код часто повторяется, типа оставнока действий если значение не правильно + добавление класса error и т.д. Поэтому я решил для всех input'тов добавить класс each к примеру, и через один each проверить все input'ты и сделать аккуратный и приятный код. $('.each').each(function(i, el){ var date = $(el).value; console.log(data); if(el <= 5){ if(data != firstPi[i]){ $(el).addClass('error'); alert("Неправильный P'"+(i+1)+". Исправьте и заново нажмите на кнопку."); } } else { $(el).removeClass('error'); } }); Вот таким способом хотел проверку сделать первых 5 input'тов, но что-то не так пошло. |
moslem,
для медитации var res = { "p1": firstPi, "p2": secondPi, "pid": defPi }; Object.keys(res).forEach(function(key) { var arr = res[key]; [].forEach.call(document.querySelectorAll("." + key), function(el, i) { el.value == arr[i] ? el.classList.remove("error") : el.classList.add("error") }) }); |
Часовой пояс GMT +3, время: 18:55. |