• 28-09-2022, 11:40:55
    #1
    Selam arkadaşlar.
    Aşağıdaki gibi bir kodum var. Tablonun satırında anlık toplama işlemi yaptıyorum ve çıkan sonucu bir inputa yazdırıyorum anlık olarak. Bu inputtaki değeri alıp farklı bir matematik işlemi yaptırmak istiyorum fakat anlık olarak değilen değeri bir türlü alamadım.

    yardımcı olmanızı rica ederim.
    Kodlarım:
        <script>
                $(document).ready(function () {
    
                    $(".sayac_a").on("input", function () {
                        toplamfonk()
                    })
                    $(".sayac_b").on("input", function () {
                        toplamfonk()
                    })
    
                    $(".ilk_okuma").on("input", function () {
                        endeks()
                    })
    
                    $(".son_okuma").change("input", function () {
                        endeks()
                    })
    
    
                    function toplamfonk() {  
                        $("tr").each(function (index, value) {
                            if (index != 0) {
    
                                var ilk_okuma = parseFloat($(this).find(".ilk_okuma").val());
    
                                var sayac_a = parseFloat($(this).find(".sayac_a").val());
                                var sayac_b = parseFloat($(this).find(".sayac_b").val());
                                var son_okuma = $(this).find(".son_okuma");
                                var toplamhesab = parseFloat((sayac_a + sayac_b).toFixed(2));
                                son_okuma.val(toplamhesab);
    
                                var endeksBul = parseFloat((son_okuma - ilk_okuma).toFixed(2));
                                endeks.val(endeksBul);
                            }
                        })
                    }
    
    
                    function endeks() {  
    
                        $("tr").each(function (index, value) {
                            if (index != 0) {
    
                                var ilk_okuma = parseFloat($(this).find(".ilk_okuma").val());
                                var son_okuma = parseFloat($(this).find(".son_okuma").val()); //Burası toplamfonksiyonundan elde edilen sonuç. Anlık değişen input. bu değeri sürekli okunabilir yapmak istiyorum.
    
                                var endeks = $(this).find(".endeks");
                                var endeksBul = parseFloat((son_okuma - ilk_okuma).toFixed(2));
                                endeks.val(endeksBul);
    
                            }
                        })
                    }
                })
            </script>
  • 12-01-2023, 00:04:58
    #2
    Sorun, son_okuma değişkeninin tanımlanmasında var. $(this).find(".son_okuma")'yu kullanarak bir jQuery nesnesi alıyorsunuz, ancak bunun yerine $(this).find(".son_okuma").val()'u kullanmalısınız.

    Bu, son_okuma değişkenine inputun anlık değerini atar ve endeks() fonksiyonunda kullanabileceğiniz bir sayı olarak kullanabilirsiniz.

    Ayrıca, endeks.val(endeksBul); satırındaki endeks önce tanımlanmamış o yüzden endeks.val(endeksBul); yerine endeks.val(endeksBul) olması lazım.
  • 12-01-2023, 00:12:43
    #3
    DiZiNi adlı üyeden alıntı: mesajı görüntüle
    Sorun, son_okuma değişkeninin tanımlanmasında var. $(this).find(".son_okuma")'yu kullanarak bir jQuery nesnesi alıyorsunuz, ancak bunun yerine $(this).find(".son_okuma").val()'u kullanmalısınız.

    Bu, son_okuma değişkenine inputun anlık değerini atar ve endeks() fonksiyonunda kullanabileceğiniz bir sayı olarak kullanabilirsiniz.

    Ayrıca, endeks.val(endeksBul); satırındaki endeks önce tanımlanmamış o yüzden endeks.val(endeksBul); yerine endeks.val(endeksBul) olması lazım.


    cevabınız için teşekkür ederim. fakat konu biraz eskidi. Farklı bir yöntemle çözdüm olayı.
    Yinede hatamın nerde olduğunu gösterdiğiniz için teşekkür ederim. En azından bilgi sahibi oldum