Javascript - Problem med if-sats

Permalänk
Medlem

Javascript - Problem med if-sats

Jag har den här if-satsen i mitt script:

amount = prompt("Hur många kronor vill du donera?"); if(amount < 0) alert("Du kan inte donera en negativ summa pengar."); else if(amount == 0) alert("0 kronor är ingen donation."); else if(isNaN(amount)) alert("Du måste ange en summa endast i siffror."); else if(amount > 1000000000000) alert("Håll dig till realistiska summor."); else alert("Tack för din donation på " + amount + " kronor!");

Nu vill jag göra så att om användaren trycker på avbryt-knappen så ska det inte komma upp något fönster. Eftersom att prompt:en returnerar null när användaren trycker på cancel så försökte jag med:

else if(!amount) break;

Men oavsett om jag har med den raden kod eller inte får jag upp "Tack för din donation på null kronor" när jag trycker på avbryt. Hur gör jag?

Permalänk

amount = prompt("Hur många kronor vill du donera?"); if (amount != null) { if(amount < 0) alert("Du kan inte donera en negativ summa pengar."); else if(amount == 0) alert("0 kronor är ingen donation."); else if(isNaN(amount)) alert("Du måste ange en summa endast i siffror."); else if(amount > 1000000000000) alert("Håll dig till realistiska summor."); else alert("Tack för din donation på " + amount + " kronor!"); }

Permalänk
Medlem

http://www.w3schools.com/js/js_popup.asp

en promt returnerar null när avbryt väljs.

Visa signatur

Wow. PIII och Voodoo. Back to old days

Permalänk
Medlem

Antar att det inte fungerar som C++ där NULL också kan jämföras med 0 och då också med boleska uttryck...

Permalänk
Medlem
Skrivet av Dalton Sleeper:

Antar att det inte fungerar som C++ där NULL också kan jämföras med 0 och då också med boleska uttryck...

Nästan..

var foo = null, bar = 0 foo == false // ger false bar == false // ger true, medan bar === false // ger false, ingen type-coercion foo == true // ger false (foo ? "yes" : "no" ) // ger no foo == bar // false man kan använda sig av dubbelnegation för att coerca ett värde till true/false: !foo === true; // true då !foo ger true !!foo === false; // true, !foo ger true, extra negation ger false

Man kan klippa ganska mycket bland de givna if-satserna

Visa signatur

Kom-pa-TI-bilitet