Avatar billede mikmakmuk Nybegynder
20. februar 2008 - 08:06 Der er 2 kommentarer

Generel måde at escape feltværdier i en form

Hej,

Jeg har en funktion som ser således ud:

function escapeVaerdier(o){

var str = escape(o.FELTNAVN.value);
str = str.replace(/\//g,"%2F");
str = str.replace(/\?/g,"%3F");
str = str.replace(/=/g,"%3D");
str = str.replace(/&/g,"%26");
str = str.replace(/@/g,"%40");

o.FELTNAVN.value=str;
}

som jeg kalder med

onsubmit="return escapeVaerdier(this)"

er der ikke en smart måde hvor jeg kan sende navnene med på de felter jeg gerne vil have escaped?
Avatar billede hells Nybegynder
20. februar 2008 - 09:28 #1
Du kan sende dem som argumenter til funktionen og i funktionen tælle antallet af argumenter:
function escapeVaerdier(o){

for(i=1;i<arguments.length;i++){
    eval("var str = escape(o."+arguments[i]+".value);");
    str = str.replace(/\//g,"%2F");
    str = str.replace(/\?/g,"%3F");
    str = str.replace(/=/g,"%3D");
    str = str.replace(/&/g,"%26");
    str = str.replace(/@/g,"%40");

    eval("o."+arguments[i]+".value=str;");
}
}

og i form-tagget:
onsubmit="return escapeVaerdier(this,'feltnavn','andetNavn','osvNavn')"
Avatar billede olebole Juniormester
20. februar 2008 - 16:41 #2
<ole>

Hvis du ellers bruger HTML-dokument, form og server script korrekt, er der ikke grund til at escape noget. Det er jo det, der er smart ved at bruge en form ... escaping af specialtegn foretages automatisk  ;o)

Du skal bare sørge for at bruge det samme tegnsæt hele vejen igennem - så får du ikke problemer escaping  =)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester