İnputa otomatik yazılan iki değeri çarpmak
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);
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (10)
$('#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.
});
$(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());
}
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.
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.
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());