Beste PHP-ers,

Uit verveling ben ik begonnen met een JS dart-script te bouwen. Het is nog erg simpel en zal later misschien worden uitgebreid met PHP. Maar voor het zover is, moet ik eerst een oplossing vinden/krijgen voor mijn probleem.

Stel: Ik speel een 501 potje en ik gooi 110. Dan hoor ik 391 over te houden en dat is ook zo. Maar dan het vreemde, zodra ik dan 40+ gooi, geeft ie mijn error melding aan, dat het niet mogelijk is... Nu ben ik er dus achter dat het laatste getal niet wordt meegeteld... Want zodra ik op 31 sta bijvoorbeeld, kan ik niet hoger dan 3 gooien.

Hier het linkje naar mijn code: JS Bin

Hopelijk kunnen jullie me (op weg) helpen!
Plaats je code even hier. Op die JSBin krijg ik in elk geval niets te zien, dus wordt helpen ook onmogelijk.

    var i = 0;
    function dartScore(value) {
        if (event.which == 13 || event.keyCode == 13) {
            var y = document.getElementById("output").innerHTML;
            var x = value;
            var z = y - x;
            if (x == 159 || x == 162 || x == 163 || x == 165 || x == 166 || x == 168 || x == 169 || x == 172 || x == 173 || x == 175 || x == 176 || x == 178 || x == 179 || x > 180 || y < x) {
                alert("Dit is niet mogelijk, vul het opnieuw in!");
            } else {
                i++;
                document.getElementById("output").innerHTML = z;
                if (z === 0) {
                    if (z < 0) {
                        z = 0;
                    }
                    if (i == 3) {
                        document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen met een 9 darter!!!!!";
                    } else {
                        document.getElementById("output").innerHTML = "Speler 1 heeft gewonnen in " + i + " beurten!";
                    }
                }
            }
        }
    }


<input type="text" id="value" onkeyup="dartScore(this.value);">
<h1 id="output">501</h1>
Deze is wel leuk"

if (z === 0) {
if (z < 0) {

Als z nul is kan ie nooit ook nog kleiner dan nul zijn.
Domme fout...

Dat moet natuurlijk
if (z <= 0) {
zijn.

Maar dat lost helaas mijn probleem nog niet op...
Waar komt event vandaan op regel 3?
if (z <= 0) {

Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.
Erwin H op 19/02/2014 17:50:37

Waar komt event vandaan op regel 3?

Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...
- SanThe - op 19/02/2014 17:59:51

if (z <= 0) {

Ook dan zal z daar nooit kleiner dan nul zijn.
Beetje zinloos dus.

Ik heb het weggehaald, door de 'y < x' kan het niet minder dan 0 zijn.
Richard Hansma op 19/02/2014 18:10:56

[quote="Erwin H op 19/02/2014 17:50:37"]
Waar komt event vandaan op regel 3?

Ik nam aan dat ik dat gewoon kan gebruiken. Zodat de functie pas werkt wanneer ik op enter druk. Verder niet bij nagedacht omdat het ook werkt...
[/quote]
Bij mij in elk geval niet. FF begint te mekkeren dat event niet gedeclareerd is (en wat mij betreft klopt dat).

Oké, heb je misschien een oplossing zodat m'n script valid draait na een enter?

Edit: Overigens geeft JSlint aan dat 'event' globaal is.
Niet op de manier zoals jij denkt.
Events zijn global maar niet het event op zich zelf.
Dus je zal op bepaalde elementen altijd een eventListener moeten zetten.

Reageren