webForumDet fria alternativet

Ingen inmatning = skicka inte vidare

JavaScript

3 svar · 290 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#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.

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)