• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[object HTMLInputElement]?

Bengman

Mitglied
Hallo, ich versuche gerade mir Javascript beizubringen und konnte bisher jedes Problem erfolgreich googlen. Hier weiß ich aber nicht weiter: Ich lasse durch if-Bedingungen prüfen, ob bestimmte Variablen existieren und lasse sie darauf hin ausgeben. Nur bei der letzten Bedinung, also die, bei der alle Variablen existieren, kommt kein zusätzliches "[object HTMLInputElement]".

Ich bin mir bewusst, dass mein Code wahrscheinlich sehr schlecht und überflüssig ist, dass er kürzer und effiezienter sein könnte, aber ich bin totaler Anfänger und weiß deshalb nicht, wie ich es besser machen sollte:

Code:
function playgame(modeus) {

   var c = document.getElementById('dartscheibe');

      var ctx = c.getContext("2d")
      ctx.font = "30px Arial";

   if(name1 && name2 && !name3 && !name4 && !name5) {

    ctx.fillText(name1, 10, 50);
    ctx.fillText(modeus, 200, 50);
    ctx.fillText(name2, 10, 100);
    ctx.fillText(modeus, 200, 100);


   }else if(name1 && name2 && name3 && !name4 && !name5) {

    ctx.fillText(name1, 10, 50);
    ctx.fillText(name2, 10, 100);
    ctx.fillText(name3, 10, 150);

   }else if(name1 && name2 && name3 && name4 && !name5) {

    ctx.fillText(name1, 10, 50);
    ctx.fillText(name2, 10, 100);
    ctx.fillText(name3, 10, 150);
    ctx.fillText(name4, 10, 200);

   }else if(name1 && name2 && name3 && name4 && name5) {


   ctx.fillText(name1, 10, 50);
   ctx.fillText(modeus, 200, 50);
   ctx.fillText(name2, 10, 100);
   ctx.fillText(modeus, 200, 100);
   ctx.fillText(name3, 10, 150);
   ctx.fillText(modeus, 200, 150);
   ctx.fillText(name4, 10, 200);
   ctx.fillText(modeus, 200, 200);
   ctx.fillText(name5, 10, 250);
   ctx.fillText(modeus, 200, 250);

 }
}

Zur genaueren Erklärung: Bei der 1. Bedingung werden die 2 Variablen angezeigt und darunter dann "[object HTMLInputElement]" - Bei den nächsten 3 Bedingungen dasselbe. Nur bei der letzten, also die, wo alle Variablen existieren, wird das nicht zusätzlich angezeigt.

Des weiteren: Auch der Wert "modeus" wird nur bei der letzten Bedinung angezeigt.

Nun wollte ich fragen, was bei dem Code falsch ist, außer, dass er in der Theorie sowieso komplett umständlich und überflüssig ist, da man ihn viel kürzer und effizienter schreiben könnte. Das Projekt ist nur zu lernzwecken.

Vielen Dank! :)
 
Werbung:
Ich weiß nicht ganz, was ich tun soll, aus irgendeinem Grund funktioniert das Programm auf Jsfiddle nicht richtig. Es passiert zumindest nichts, wenn man auf den Button klickt. Vielleicht den Code schnell runterladen und auf dem eigenem Pc ausführen.
 
Werbung:
@basti1012 läuft zwar besser, aber trotzdem nich so, wie es sein sollte. Aber jetzt kann man das Programm wenigstens halbwegs benutzen und den Fehler möglicherweise nachvollziehen. Danke.
 
Werbung:
Bei Fiddle ist auch wichtig,wenn du oben im HTML Teil einen functions aufruf hast zb " hallo()",dann musst in den Einstellungen unter"LOAD TYPE" auf " no wrap - in <body> " einstellen ,sonst functioniert der funktions aufruf nur über eventlistener
 
Ist ja jetzt eingestellt, aber es scheint, als würde das JQuery nicht funktionieren. Wobei das nur halb so schlimm ist.
 
Werbung:
Das stimmt doppel arbeit muß nicht sein ,aber für mich ist es trotzdem gut,so kann ich noch etwas üben.Ich wußte nach kurzer Zeit wo ich suchen mußte.Aber richtig erklären ,so wie es gemacht hast hätte ich es nicht.
Ist für die anderen aber auch immer schön wenn es eine erklärung gibt warum was nicht funktioniert,weil sonst weiß man ja auch nicht was man falsch gemacht hat
 
Werbung:
Zurück
Oben