JavaScript Number.Parselnt() çalıştırınca "NaN" dönüyor

kawkaa37

Decapat
Katılım
1 Temmuz 2021
Mesajlar
38
Daha fazla  
Cinsiyet
Erkek
Bu kodları çalıştırınca nan problemi veriyor .sizce sebep ne olabilir?
Not: .Number.parselnt() kodu yerine valueAsNumber kodunuda denedim o kodda undefined hatası veriyor.

HTML:
<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>GÜNLÜK PROGRAM</title>

    <link rel="stylesheet" href="style.css">

    <link rel="stylesheet" href="toplama.js">

    <meta http-equiv="refresh" content="false">

 

</head>

<body>

    <div class="ders_programı">GÜNLÜK PROGRAM</div>

<ol type="I" class="liste" >

 

    <input type="checkbox" <li>170 soru</li> <h1 id="DersDToplam">Toplam Sayı Burada Görünecek</h1>

    <ol type="A" >

        <input type="checkbox" <li>Matematik = 20 soru</li>

        (Doğru:<input class="ders_DM" type="text" max="20" size="1" align="center"> Yanlış:<input class="ders_YM" type="text" max="20" size="1" align="center">)

        <br>

        <input type="checkbox"  <li>Fen = 30 soru</li>

        (Doğru:<input class="ders_DF" type="text" max="20" size="1" align="center"> Yanlış:<input class="ders_YF" type="text" max="20" size="1" align="center">)

        <br>

        <input type="checkbox" <li>Türkçe = 30 soru</li>

        (Doğru:<input class="ders_DT" type="text" max="20" size="1" align="center"> Yanlış:<input class="ders_YT" type="text" max="20" size="1" align="center">)

        <br>

        <input type="checkbox" <li>Din = 30 soru</li>

        (Doğru:<input class="ders_DD" type="text" max="20" size="1" align="center"> Yanlış:<input class="ders_YD" type="text" max="20" size="1" align="center">)

        <br>

        <input type="checkbox" <li>İnklap = 30 soru</li>

        (Doğru:<input class="ders_Dİnk" type="text" max="20" size="1" align="center"> Yanlış:<input class="ders_Yİnk" type="text" max="20" size="1" align="center">)

        <br>      

        <input type="checkbox" <li>İngilizce = 30 soru</li>

        (Doğru:<input class="ders_Dİng" type="text" max="20" size="1" align="center"> Yanlış:<input class="ders_Yİng" type="text" max="20" size="1" align="center">)

        <br>

        <button onclick="Ders_Toplam()">Derslerin Toplam Doğru Sayısını Görmek İçin Tıklayınız</button>

        <script src="toplama.js"></script>

    </ol>

    <input type="checkbox" <li>Spor</li>

    <br>

    <input type="checkbox" <li>Kod Yazma/Öğrenme</li>

    <br>

    <input type="checkbox" <li>Kitap Okuma</li>

</ol>

</body>

</html>



var dersDD=document.getElementById("ders_DD").Number.parseInt();

var dersDM=document.getElementById("ders_DM").Number.parseInt();

var dersDT=document.getElementById("ders_DT").Number.parseInt();

var dersDİnk=document.getElementById("ders_Dİnk").Number.parseInt();

var dersDİng=document.getElementById("ders_Dİng").Number.parseInt();

var dersDF=document.getElementById("ders_DF").Number.parseInt();

function Ders_Toplam() {

    var Toplam = dersDD+ dersDF+ dersDİng+ dersDİnk+ dersDM+ dersDT;

    document.getElementById("DersDToplam").textContent="Toplam: "+Toplam;

}
 
Son düzenleyen: Moderatör:
Hocam kodunuzdaki sorun, Number.parseInt() işlevini doğrudan HTML öğeleri üzerinde kullanmaya çalışmanız.

Düzeltilmiş kod:

JavaScript:
function Ders_Toplam() {
    var dersDD = parseInt(document.getElementById("ders_DD").value, 10) || 0;
    var dersDM = parseInt(document.getElementById("ders_DM").value, 10) || 0;
    var dersDT = parseInt(document.getElementById("ders_DT").value, 10) || 0;
    var dersDİnk = parseInt(document.getElementById("ders_Dİnk").value, 10) || 0;
    var dersDİng = parseInt(document.getElementById("ders_Dİng").value, 10) || 0;
    var dersDF = parseInt(document.getElementById("ders_DF").value, 10) || 0;

    var Toplam = dersDD + dersDF + dersDİng + dersDİnk + dersDM + dersDT;

    document.getElementById("DersDToplam").textContent = "Toplam: " + Toplam;
}
 
Hocam kodunuzdaki sorun, Number.parseInt() işlevini doğrudan HTML öğeleri üzerinde kullanmaya çalışmanız.

Düzeltilmiş kod:

JavaScript:
function Ders_Toplam() {
    var dersDD = parseInt(document.getElementById("ders_DD").value, 10) || 0;
    var dersDM = parseInt(document.getElementById("ders_DM").value, 10) || 0;
    var dersDT = parseInt(document.getElementById("ders_DT").value, 10) || 0;
    var dersDİnk = parseInt(document.getElementById("ders_Dİnk").value, 10) || 0;
    var dersDİng = parseInt(document.getElementById("ders_Dİng").value, 10) || 0;
    var dersDF = parseInt(document.getElementById("ders_DF").value, 10) || 0;

    var Toplam = dersDD + dersDF + dersDİng + dersDİnk + dersDM + dersDT;

    document.getElementById("DersDToplam").textContent = "Toplam: " + Toplam;
}
Hocam "undefined" hatası verdi bunun hakkında bir bilginiz var mıdır acaba
 
Hocam "undefined" hatası verdi bunun hakkında bir bilginiz var mıdır acaba
Sorun, JavaScript dosyanızı HTML'ye eklemeye çalışma şeklinizden kaynaklanıyor olabilir. JavaScript dosyanızı eklemek için <link> etiketini değil, <script> etiketini kullanmalısınız.

JavaScript dosyanızın <link> etiketini <head> bölümünden kaldırın

HTML:
<!-- burayı kaldır -->
<link rel="stylesheet" href="toplama.js">


<script> etiketini <body> bölümünün sonuna, </body> kapanış etiketinin hemen öncesine taşıyın.


HTML:
<!-- Bu komut dosyası etiketini gövdenin sonuna taşıyın -->
<script src="toplama.js"></script>
</body>
 
<Link rel="stylesheet" href="toplama.js">

JavaScript'de bu şekilde bir belirtme yok.

Var dersDD=document.getElementById("ders_DD").Number.parseInt(); var dersDM=document.getElementById("ders_DM").Number.parseInt(); var dersDT=document.getElementById("ders_DT").Number.parseInt(); var dersDİnk=document.getElementById("ders_Dİnk").Number.parseInt(); var dersDİng=document.getElementById("ders_Dİng").Number.parseInt(); var dersDF=document.getElementById("ders_DF").Number.parseInt(); function Ders_Toplam() { var Toplam = dersDD+ dersDF+ dersDİng+ dersDİnk+ dersDM+ dersDT; document.getElementById("DersDToplam").textContent="Toplam: "+Toplam; }

Burayı script etiketi içine almayı deneyin.
 

Geri
Yukarı