webForumDet fria alternativet

Ingen inmatning = skicka inte vidare

3 svar · 288 visningar · startad av learn

learnMedlem sedan jan. 20051 130 inlägg
#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?

learnMedlem sedan jan. 20051 130 inlägg
#2

Någon som vet?

@ndersMedlem sedan juni 200032 969 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.

nitro2k01Medlem sedan aug. 20039 342 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.

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)