webForumDet fria alternativet

Encoding-problem, js-skapade formulär

2 svar · 259 visningar · startad av emission

emissionMedlem sedan dec. 19996 721 inlägg
#1

Har en SELECT som populeras dynamiskt med värden som man kan skriva in en TEXTBOX. Det fungerar utmärkt, men om man stoppar in ett värde med å ä ö, så blir det helknas på serversidan, och åäö resulterar i tramsencodad text.

Dvs.

<FORM>
<SELECT>
<OPTION VALUE="thevalue" SELECTED>thevalue</OPTION>
</SELECT>
<INPUT TYPE="SUBMIT" VALUE="Skicka">
</FORM>

ger annat resultat än

<SCRIPT>
function checkForm(formref) {
formref.theselect.options[formref.theselect.options.length]=new Option(formref.thetext.value,formref.thetext.value);
formref.theselect.selectedIndex=formref.theselect.options.length-1;
return true;
}
</SCRIPT>
<FORM onSubmit="return checkForm(this);">
<SELECT NAME="theselect">
<OPTION VALUE="empty">tom</OPTION>
</SELECT>
<INPUT NAME="thetext" TYPE="TEXT" VALUE="thevalue">
<INPUT TYPE="SUBMIT" VALUE="Skicka">
</FORM>

...nu är det inte riktigt så koden ser ut, men pricipen är alltså att om javascript får skapa elementet, så encodas åäö fel.

Tips?

JohnsenMedlem sedan juli 2000836 inlägg
#2

Bara en tanke.

<SCRIPT>
function ampStr(str){
str=str.replace(/å/g,"& aring;"); //OBS! space...
str=str.replace(/ä/g,"& auml;");
str=str.replace(/ö/g,"& ouml;");
return str;
}

function checkForm(formref) {
formref.theselect.options[formref.theselect.options.length]=new Option(formref.thetext.value,ampStr(formref.thetext.value));
formref.theselect.selectedIndex=formref.theselect.options.length-1;
return true;
}
</SCRIPT>
emissionMedlem sedan dec. 19996 721 inlägg
#3

En bra tanke, men tyvärr inte en lösning. Javascript hanterar htmlencode-biten själv (egentligen inte, men den behöver inte det heller..).

Samma problem uppstår i ett formulär som skapats helt via Javascript (document.write). åäö fungerar inte. Exakt samma formulär skapat direkt i HTML:en fungerar klockrent. Det hela måste bero på representationen av objekten i den interna DOM:en, men vad göra? Problemet med Options gäller både IE och FireBird, medan IE är ensam om formulärproblemet.

Lösningen är säkert enkel, men väl dold....

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