v2.5.2
Giriş yap

İnputa otomatik yazılan iki değeri çarpmak

kreawich
672 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Merhaba,
Kullanıcı checkbox elemanlarında seçim yaptığında Saat ve ücret olarak 2 input'a veriler otomatik yazdırılıyor,

Şu şekilde çalışmaktadır, Yaklaşık 15 adet checkbox elemanı mevcuttur.

   
   // A Checkbox Elemanı Seçildi 
	
	$(document).ready(function() {
    $('.mucret').change(function() {
        if ($('.mucret input').is(':checked')) {
			$('#kurs-saat').attr('value', '14');
			$('#ders-ucret').attr('value', '72');
        } else {
			$('#kurs-saat').attr('value', '');
			$('#ders-ucret').attr('value', '');
        }
    });

Değerler bu input elemamanlarına yazılıyor ve biz bunları form işlemi tamamlandığında pdf formuna yazdırıyoruz.

  <label> Kurs Saati: [text* kurs-saati   id:kurs-saat "1" ] </label>
  <label> Ders Ücreti: [text* ders-ucreti   id:ders-ucret "1" ] </label>
  <label> Saat x Ücret: [text* saat-ucret   id:saatxucret "1" ] </label>

Ancak biz Kurs Saati: ve Ders Ücreti: inputuna yazılan değeri çarparak Saat x Ücret: yazdırmak istiyoruz. Bu şekile bir kodumuz var ancak
iş yapmıyor. Kurs Saati: inputuna değer yazıldığında bunu çarparak saatxucret inputuna bunu yazdırmayı nasıl başarabiliriz.

Üzerinde çalıştığımız kod;

          var kurs-saat = document.getElementById("kurs-saat");
var lastkurs-saatValue = kurs-saat.value;
setInterval(function() {
    var newValue = kurs-saat.value;
    if (lastkurs-saatValue != newValue) {
        lastkurs-saatValue = newValue;
        handleValueChange();
    }
}, 50); // 20 times/second
function handleValueChange() {
   $('#saatxucret').val($('#kurs-saat').val() * $('#ders-ucret').val());
}
// Trigger a change
setTimeout(function() {
    kurs-saat.value = "new value";
}, 800);
Cevap yaz
Cevaplar (10)
kreawich
1226 gün önce

abdullahx Kralsın. makifgokce emeğin için teşekkür ederim.

makifgokce
1226 gün önce
$('#tikla').click(function() {
    if ($('#tikla').is(":checked") == true) {
        $('#saat').val('14');
       $('#ucret').val('72.20');
    } else {
        $('#saat').val('');
        $('#ucret').val('');
    }
    handleValueChange(); // burayada eklersen oda çözülür.
});
kreawich
1226 gün önce

makifgokce kardeşim teşekkür ederim ama bu şekilde çalışmıyor. keyup kulllandığımızda ben inputa maunel bir şey yazarsam çarpma işlemini yapacak.
Şuan kodu test ettiğimdede otomatik yazılan iki veriyi çarpmıyor.

makifgokce
1226 gün önce
$(document).ready(function() {   
    // Onay Kutusuna Tıklandığında Veriler Yazdırılıyor
    $('#tikla').click(function() {
        if ($('#tikla').is(":checked") == true) {
            $('#saat').val('14');
           $('#ucret').val('72.20');
        } else {
            $('#saat').val('');
            $('#ucret').val('');
        }
    });
    $('#saat').on('keyup change', handleValueChange);
    $('#ucret').on('keyup change', handleValueChange);
});
function handleValueChange() {
   $('#saatxucret').val($('#saat').val() * $('#ucret').val());
}
kreawich
1226 gün önce

Yorumlarınız için teşekkür ederim,

https://codepen.io/Sunephe/pen/JjNXVoz

bu şekilde bir demo hazırladığım sırada aslında çözümü buldum. Ancak 14 x 72,20 işleminin sonucunda 1010,8000000000001 olarak sonuç alıyorum. Bu sorunu nasıl çözebilirim.

tayfunerbilen
1226 gün önce

codepen'e basit bir demo hazırlayıp gönderirsen onun üzerinden düzenlemeyi yapalım, böyle ben de pek bir şey anlamadım.

kreawich
1226 gün önce

makifgokce kardeşim ben veriyi yazdırmakta sorun yaşamıyorum sorunum otomatik yazılan 2 input verisini çarparak en altta bulunan inputa yazdırmak. ..

abdullahx
1226 gün önce

Kodunuzu bir codepen üzerinde yazıp linkini paylaşırsanız yardım etmesi daha kolay olabilir.

makifgokce
1226 gün önce

eğer label içerisine yazı yazdırmak istiyorsan .val() ile değiştiremezsin.
.text() veya .html() ile yapmayı dene.Düz yazı yazdıracaksan .text() yazı içerisinde html elementleri kullanacaksan .html() ile yazdırmalısın.

$('#saatxucret').text($('#kurs-saat').val() * $('#ders-ucret').val());