Avatar billede mikmakmuk Nybegynder
19. september 2002 - 08:39 Der er 6 kommentarer og
1 løsning

uppercasing

Jeg har et problem med uppercasing. Jeg har en række felter hvis værdier gerne skulle være med store bogstaver. Jeg har prøvet

<INPUT TYPE="TEXT" style='text-transform:uppercase;' NAME="test" VALUE="test" MAXLENGTH="20" SIZE="20">

<INPUT TYPE="TEXT" style='text-transform:uppercase;' NAME="test1" VALUE="test1" MAXLENGTH="20" SIZE="20">

men det virker ikke. Hvordan laver jeg et script som løber felterne igennem og uppercaser værdierne?
Avatar billede tknudsen Nybegynder
19. september 2002 - 08:45 #1
onkeyup="this.value.toUpperCase()"
Avatar billede tknudsen Nybegynder
19. september 2002 - 08:46 #2
altså:

<INPUT TYPE="TEXT" NAME="test" VALUE="test" MAXLENGTH="20" SIZE="20" onkeyup="this.value.toUpperCase()">

du kan også gøre det på onblur eventen...:

<INPUT TYPE="TEXT" NAME="test" VALUE="test" MAXLENGTH="20" SIZE="20" onblur="this.value.toUpperCase()">
Avatar billede cdc Novice
19. september 2002 - 08:47 #3
<SCRIPT LANGUAGE="JavaScript"><!--
function convert() {
    document.myForm.myText1.value = document.myForm.myText1.value.toUpperCase();
    document.myForm.myText2.value = document.myForm.myText2.value.toUpperCase();
}
//--></SCRIPT>

<FORM NAME="myForm" onSubmit="convert()">
<INPUT TYPE="TEXT" NAME="myText1">
<INPUT TYPE="TEXT" NAME="myText2">
<INPUT TYPE="SUBMIT">
</FORM>
Avatar billede tknudsen Nybegynder
19. september 2002 - 08:55 #4
Hvis du vil lave en generel kovertering (som /cdc foreslår) kan du lave den således:

function upperCaseAll()
{
  var objsInput = documen.getElementsByTagName('input'); // find alle input tags
 
  for(var i=0;i<objsInput.lenght;i++)
    if(objsInput[i].type.toLowerCase()=='text')  // find <input type="text"> tags
      objsInput[i].value = objsInput[i].value.toUpperCase();
}

og så kalde den på feks form.onsubmit eventen, eller window.onload.
Avatar billede tknudsen Nybegynder
19. september 2002 - 08:56 #5
følgende er sføli forkert:

onkeyup="this.value.toUpperCase()"

det skal være:

onkeyup="this.value=this.value.toUpperCase()"

så det bliver:

<INPUT TYPE="TEXT" NAME="test" VALUE="test" MAXLENGTH="20" SIZE="20" onkeyup="this.value=this.value.toUpperCase()">
Avatar billede tknudsen Nybegynder
19. september 2002 - 09:37 #6
Det skal lige siges at metoden getElementsByTagName() er en del af DOM'en og derfor skal browseren understøtte denne. Jeg mener at det ie5+ og mozilla 0.9+ (netscape 6+) opfylder dette (?).
Avatar billede Slettet bruger
19. september 2002 - 15:54 #7
Det behøver heller ikke være så fornemt:

function upperCaseAll() {
for (i = 0; i < document.forms.length; i++) {
for (n = 0; n < document.forms[i].elements.length; n++)
if (document.forms[i].elements[n].type == "text")
document.forms[i].elements[n].value = document.forms[i].elements[n].value.toUpperCase();
}
}
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