lostyazilim
tr.link

Array ve if

3 Mesajlar 810 Okunma
lstbozum
tr.link

Rakoto Rakoto WM Aracı Kullanıcı
  • Üyelik 06.11.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek acemi yazılımcı
  • Konum Kocaeli
  • Ad Soyad S** S**
  • Mesajlar 163
  • Beğeniler 22 / 22
  • Ticaret 0, (%0)
Merhabalar kolay gelsin cümleten
Ekte ki gibi bir sayfam var bölüm seçilince ajaxla array olarak görevleri listeliyorum daha sonra uygulama puanı veriyorum ve hedef ile kıyaslamasını yaptırarak uygunluğuna bakıyorum. "Uygundur" veya "Uygun Değildir" yazıyor. Sorunu çözemedim bir türlü
Kodlarda böyle.












<script>

function calculate(){
var quaval= document.getElementById('quaval');
var obj= document.getElementById('obj');
var rel= document.getElementById('rel');
var obj1= obj.value;
var quaval1= quaval.value;
if(quaval1>= obj1) {
rel.value = 'Confirmed';
} else if(quaval1<= obj1) {
rel.value = 'Not Confirmed';
}
}
</script>
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
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.
VipTema Rakoto

kişi bu mesajı beğendi.

no time for caution

Rakoto Rakoto WM Aracı Kullanıcı
  • Üyelik 06.11.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek acemi yazılımcı
  • Konum Kocaeli
  • Ad Soyad S** S**
  • Mesajlar 163
  • Beğeniler 22 / 22
  • Ticaret 0, (%0)
Teşekkürler hocam sorun çözüldü
Emeğine sağlık
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al