Konu Array olunca döngüler akla ilk gelse de bu performans açısından iyi bir tercih değildir. Tablolarda blok blok veya satır satır düşünmemiz gerekiyor. Change işleminin gerçekleştiği satıra odaklanıp hesabı o satırdaki verilerle yapman gerek.

Öncelikle HTML üzerinde doğrudan event ile fonksiyon çağırmak doğru bir işlem değil. Bu noktada Event listener'lar işimizi kolaylaştıracak ve okuma kolaylığı sağlayacak.

Şu şekilde bir yaklaşım sergilediğinde istediğin sonucu verimli bir şekilde alırsın.

JSFiddle

https://jsfiddle.net/EgoistDeveloper/a35dyoz4/

Kaynak Kod



































Qualification

Qualification Level

Qualification Rate

Qualification Score

Qualification Confirm





















<script>
document.querySelectorAll('input[type="text"]').forEach(function (input) {
input.addEventListener('change', function () {
let row = this.closest('tr'),
qual_rate = row.querySelector('[name="qual_rate[]"]').value,
qual_level = row.querySelector('[name="qual_level[]"]').value,
confirm = row.querySelector('[name="confirm[]"]');

confirm.value = qual_rate >= qual_level ? 'Qualified' : 'Train Required';
});
});
</script>


Uyarı: closest fonksiyonu IE'da çalışmıyor.