Ingen inmatning = skicka inte vidare

JavaScript

3 svar · 292 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Trådstart#1

Jag har en prompt som ber om namn. Klickar man på avbryt i prompten så ska naturligtvis inget hända, men det gör det... Namnet (name) blir null!

function changeName(oldName){

    var name = escape(window.prompt("Skriv ditt namn",oldName));

     if (name != null) {
            document.location.href="?name="+name;
     }
}

Hur ska jag göra?

Medlem sedan jan. 20051 130 inlägg
#2

Någon som vet?

Medlem sedan juni 200032 967 inlägg
#3

Jag gissar på att du får en sträng med värdet null när du använt escape(). Så antingen flyttar du escape in i if-satsen, eller jämför med strängen null istället.

Medlem sedan aug. 20039 340 inlägg
#4
function changeName(oldName){

    var name = window.prompt("Skriv ditt namn",oldName);

     if (name != null && name.length) {
            document.location.href="?name="+escape(name);
     }
}

Prompt returnerar null i det läget just för att det ska gå att spåra helt säkert om användaren har klickat avbryt. Jag rekommenderar koden ovan, som skickar användaren vidare endast om hon både har skrivit ett namn och inte klickat avbryt.

278 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
144 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)