Avatar billede stig69 Nybegynder
03. juni 2004 - 12:16 Der er 13 kommentarer og
1 løsning

onblur/onfocus

Jeg har siddet og rodet lidt med onblur og onfocus. Hvad er egentlig forskellen? Når, jeg har lidt kode med tre inputfelter. Det sidste inputfelt måkun bestå af talværdier. Det fungerer også nu, bortset fra at man sagtens kan hoppe videre til et af de andre to felter uden at have opfyldt kravet om kun talværdier i tredie inputfelt. Hvad kan jeg gøre for at forhindre dette?

<table border="1" cellpadding="5" cellspacing="0" width="100%">
  <tr>
    <td colspan="2"><h2 class="center">Indskriv ny temadag eller anden aktivitet:</h2></td>
    </tr>
    <tr>
        <td colspan="2">Beskrivelse:</td>
    </tr>
    <tr>
        <td colspan="2"><input type="text" maxlength="80" name="beskrivelse" size="80" class="inputtekst" /></td>
    </tr>
    <tr>
        <td width="150">Første dato for afholdelse:</td>
        <td>Maks antal tilmeldte (0 for ubegrænset):</td>
  </tr>
  <tr>
    <td><input type="text" class="inputtekst" name="moededato" size="25" maxlength="25" \></td>
    <td><input type="text" class="inputtekst" name="moededato" size="14" value="0" maxlength="10" onblur="if(!this.value.match(/^[0-9]*$/))alert('Feltet må kun indeholde tal');this.focus();"></td>
    </tr>
</table>

Stig
Avatar billede roenving Novice
03. juni 2004 - 12:22 #1
Hvis du vil sikre at man ikke fjerner sig fra feltet, skal du lave et check på alle andre felter og objekter, som så ikke må få fokus !-)
Avatar billede stig69 Nybegynder
03. juni 2004 - 12:33 #2
roenving--> Kan du give et eksemple?
Avatar billede roenving Novice
03. juni 2004 - 12:44 #3
Nej, hvis jeg havde haft et liggende, ville jeg gerne have givet dig det ...

-- men man skal, såvidt jeg kan gennemskue, bogstavelig talt trappe for alle events i andre objekter, og det lyder for mig som voldsomt overkill (bl.a. fordi der er nogle irriterende forskelle mellem browsere i.f.t. event-objekter !-)
Avatar billede stig69 Nybegynder
03. juni 2004 - 13:25 #4
ok, så det er ikke så ligetil? så laver jeg istedet en "onsubmit"
Avatar billede roenving Novice
03. juni 2004 - 13:31 #5
-- og så kan du jo rense feltet, hvis det ikke indeholder tal:

onblur="if(!this.value.match(/^\d*$/)){alert('Feltet må kun indeholde tal');this.value=(isNaN(this.value))?'':this.value;this.focus();}"

-- og jeg udskiftede lige din tal-blok til digits-entiteten, da det jo er det samme !-)
Avatar billede stig69 Nybegynder
03. juni 2004 - 13:43 #6
tak skal du have
Avatar billede stig69 Nybegynder
03. juni 2004 - 13:50 #7
Hvis nu de andre felter ikke må være tomme, er det så sådan her?

onblur="if(this.value == "")alert('Feltet må ikke være tomt');this.focus();"
Avatar billede roenving Novice
03. juni 2004 - 14:00 #8
Ja !-)

-- men brug stadig den gode ide med at lave en validering onsubmit på formen !o]

<form ... onsubmit="return valider(this)">

-- og i en javascript-blok:
function valider(f){
  if(f.moededato.value==""){
    alert("Feltet skal indeholde en dato !-)")
    f.moededato.focus();
    return false;
  }
//osv.
  return true;
}
Avatar billede stig69 Nybegynder
03. juni 2004 - 14:14 #9
Ok... men jeg vil også godt have dette her til at virke :-). Jeg har lavet denne her
ovenpå det du har vist mig. Men jeg kan ikke rigtig få "indskriv dato" frem hvis feltet er tomt

onblur="if(this.value == ''){alert('Feltet må ikke være tomt');this.value=(isNaN(this.value))?'indskriv dato':this.value;this.focus();}"
Avatar billede roenving Novice
03. juni 2004 - 14:31 #10
onblur="if(this.value == ''){alert('Feltet må ikke være tomt');this.value='Indskriv dato';this.focus();}"

Er det sådan en forud-tekst, du vil have, så prøv at se, om ikke dette er hvad du vil have:

http://roenving.users.whitehat.dk/WD3Input.html
Avatar billede stig69 Nybegynder
03. juni 2004 - 14:34 #11
Nu må du gerne ligge et svar ind så du kan få nogle point. Og tak for linket, jeg har kopieret det allerede :-)
Avatar billede roenving Novice
03. juni 2004 - 14:39 #12
Velbekomme '-)
Avatar billede stig69 Nybegynder
03. juni 2004 - 14:39 #13
Det er mig der takker endnu engang. Javascript... det kan jeg bare ikke
Avatar billede roenving Novice
03. juni 2004 - 14:53 #14
-- og tak for point ;~}
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