Avatar billede canedo Nybegynder
28. januar 2005 - 18:20 Der er 20 kommentarer og
2 løsninger

Prompt ved validering af antal tegn i textarea

Hvis en bruger ikke har indtastet minimum 50 tegn i et felt skal der komme en prompt når der trykkes på submit... hvordan laves det?
Avatar billede canedo Nybegynder
28. januar 2005 - 19:14 #1
ihh... kom med et hint. Jeg har hævet points...
Avatar billede elskermad.dk Nybegynder
28. januar 2005 - 19:32 #2
function tjek(f) {
  if(f.feltnavn.value.length<50) {
      alert('Du har kun skrevet ' + f.feltnavn.value.length + ' tegn');
      f.feltnavn.focus();
      return false
  }
  else {
      return true
  }
}

<form .... onSubmit='return tjek(this)'>

også skal det self lige tilpasses til din side :)
Avatar billede canedo Nybegynder
28. januar 2005 - 20:40 #3
hmm... det virker ikke... der sker ingenting overhovedet...

Jeg har gjort sådan:

<script type="javasctipt/text">
function tjek(f) {
  if(f.feltnavn.value.length<50) {
      alert('Du har kun skrevet ' + f.feltnavn.value.length + ' tegn');
      f.feltnavn.focus();
      return false
  }
  else {
      return true
  }
}
</script>

og i form ser det sådan her ud:
<form action="ret.asp" method="POST" onSubmit='return tjek(this)'>
Avatar billede softspot Forsker
29. januar 2005 - 02:24 #4
Hvordan ser din form ud?
Avatar billede olebole Juniormester
29. januar 2005 - 05:36 #5
<ole>

Du skal naturligvis skifte ordet 'feltnavn' ud med feltets name i elsekermad.dk's eksempel. Mon ikke, du har glemt det?  ;o)

Står der:
  <input name="Gud_ved_hvad">

- skal der stå:

function tjek(f) {
  if(f.Gud_ved_hvad.value.length<50) {
      alert('Du har kun skrevet ' + f.Gud_ved_hvad.value.length + ' tegn');
      f.Gud_ved_hvad.focus();
      return false
  }
  else {
      return true
  }
}

/mvh
</bole>
Avatar billede elskermad.dk Nybegynder
29. januar 2005 - 09:30 #6
yep ham olebole kan man sgu altid stole på ;)
Avatar billede roenving Novice
30. januar 2005 - 13:21 #7
-- og så skal der _ikke_ være en else foran return true !-)

function tjek(f) {
  if(f.Gud_ved_hvad.value.length<50) {
      alert('Du har kun skrevet ' + f.Gud_ved_hvad.value.length + ' tegn');
      f.Gud_ved_hvad.focus();
      return false;
  }
  return true;
}
Avatar billede canedo Nybegynder
30. januar 2005 - 14:37 #8
skidtet virker altså ikke... har gjort sådanher:

<script type="javascript/text">
function tjek(f) {
  if(f.profiltekst.value.length<50) {
      alert('Du har kun skrevet ' + f.profiltekst.value.length + ' tegn');
      f.profiltekst.focus();
      return false;
  }
  return true;
}
</script>

i body:

<form action="ret.asp" method="POST" onSubmit='return tjek(this)'>



længere nede - selve tekstfeltet:

<textarea name="profiltekst" class="textarea"><%=besked%></textarea>


<input type="submit" value="Gem">
</form>
Avatar billede roenving Novice
30. januar 2005 - 14:43 #9
Du har fejl i script-tagget:

<script type="text/javascript">
Avatar billede canedo Nybegynder
30. januar 2005 - 14:46 #10
Det opfører stadig som om, at intet var hændt. Der kommer ingen promtp ved under 50 tegn...
Avatar billede canedo Nybegynder
30. januar 2005 - 14:53 #11
YES, nu virker det... læg et svar roenving.
Avatar billede softspot Forsker
30. januar 2005 - 14:54 #12
kan du ikke benytte flg. format til at få fat i tekstfeltet:

f.elements["profiltekst"]

i stedet for

f.profiltekst
Avatar billede softspot Forsker
30. januar 2005 - 14:54 #13
hmm... too late :)
Avatar billede roenving Novice
30. januar 2005 - 15:05 #14
Så det var altså det problem udenfor elskermads svar, som var det, der manglede, så må det vel være ham, som for broderparten af pointene !-)

Velbekomme '-)
Avatar billede roenving Novice
30. januar 2005 - 15:08 #15
-- og tak for point ;~}
Avatar billede canedo Nybegynder
30. januar 2005 - 15:09 #16
så lidt :o)
Avatar billede thesurfer Nybegynder
30. januar 2005 - 17:39 #17
Kunne man ikke bare bruge onsubmit="return tjek(this.feltnavn)", og derefter if (f.value.length<50), "..skrevet ' + f.value.length + 'tegn'..", f.fokus() ..?

Altså med "return tjek(this.feltnavn)" i stedet for "return tjek(this)"..
Når man nu skal være doven, kan man vel lige så godt være doven :-)
Avatar billede roenving Novice
30. januar 2005 - 18:05 #18
*lol* jo !-)
Avatar billede elskermad.dk Nybegynder
31. januar 2005 - 00:10 #19
takker for point og tak til jer andre for at hjælpe med at få det til at virke :)

roenving: der kan godt være en else i funktion - virker hvert fald fint alle de steder jeg bruger js-validering!

nat nat...
Avatar billede thesurfer Nybegynder
31. januar 2005 - 12:12 #20
elskermad.dk> Ang roenvings "ikke else":
Den vil automatisk returnere "true", hvis man ikke selv returnerer "false". Derfor er et "else" overflødigt.
Avatar billede thesurfer Nybegynder
31. januar 2005 - 12:16 #21
Man kunne vel bare bruge:

function tjek(f) {
  if(...<50) {
      ...
      ...
      return false;
  }
}
Avatar billede roenving Novice
31. januar 2005 - 12:21 #22
>>thesurfer

-- til min store overraskelse fandt jeg for en ca. 1½ års tid siden ud af, at den slet ikke accepterede return false; hvis ikke der også var en return true; !-)
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