Avatar billede aurum Nybegynder
21. marts 2007 - 14:27 Der er 14 kommentarer og
1 løsning

Validering af tekstfelt - værdi større end.

Jeg har et tekstfelt i en html-formular, hvor  det indtastede beløb SKAL være større end eller lig med 50. Hvis ikke brugeren indtaster et korrekt tal, skal der komme en alertboks frem.

Jeg ved, at det kan lade sig gøre med Javascript, men jeg kan ikke liiiige finde den rette til mit formål.

Jeg har fundet denne her på html.dk, men den sikrer kun, at feltet bliver udfyldt med et eller andet. Jeg skal så også lige have et minimumsbeløb på, og det kan jeg ikke finde ud af.

Nogen der kan hjælpe mig?

<script type="text/javascript">
<!-- Dette script og mange flere -->
<!-- findes hos http://www.html.dk -->
<!-- Start

function validering()
  {
  error = 0;
  if((document.forms[0].tekstfeltnavn.value=='') && (error==0)) 
  {       
    alert('Tekstfeltet skal udfyldes!');
    document.forms[0].tekstfeltnavn.focus();
    error = 1;       
  }           

  if(error == 0)
  document.forms[0].submit();   
  }

// Slut -->
</script>
Avatar billede roenving Novice
21. marts 2007 - 15:55 #1
Tjah, nu er det et af de scripts, du kan finde på html.dk, som kun i _meget_ specielle situationer kan anbefale ...

-- men gør f.eks. sådan:

<script type="text/javascript">
function valider(f){
  if(f.tal.value == "" || +f.tal.value < 50){
    alert("Du skal skrive et tal, der er større end 50 !-)");
    f.tal.focus();
    return false;
  }
  return true;
}
</script>

-- og så skal kaldet til valideringen sættes på form-tagget:

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

-- og så er det væsentligt at bemærke at du er gået totalt forkert i byen, når du vælger Java-kategorien, for det væsentligste Java og javascript har til fælles er j - a - v - a !-)

-- du skal derfor en anden gang vælge kategorien: Programmering - Script - Javascript !o]
Avatar billede aurum Nybegynder
22. marts 2007 - 10:58 #2
Jeg kan ikke rigtig få det til at virke.

Jeg har endnu et script i headsektionen, som validerer emailadressen. Er det pga det, jeg ikke kan få det andet til at fungere?

Scriptene i headsektionen ser sådan ud:

<!-- start - validation of field 'sender'-->
<script type="text/javascript">
function validate_Sender(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2)
  {alert(alerttxt);return false}
else {return true}
}
}function validate_form(thisform)
{
with (thisform)
{
if (validate_Sender(Sender,"Please enter a valid e-mail address containing at least a @ and a dot!")==false)
  {Sender.focus();return false}
}
}
</script>
<!-- end of validation-->

<!-- Start of validation on quantity-->
<script type="text/javascript">
function valider(f){
  if(f.tal.value == "" || +f.tal.value < 50){
    alert("Please notice that minimum order is 50!-)");
    f.tal.focus();
    return false;
  }
  return true;
}
</script>
<!-- End of validation on quantity-->

I min form  har jeg dette i starten, som validerer mailadressen:

<FORM name="Request" METHOD="POST" ACTION="quote.asp" onsubmit="return Request_Validator(this)">

Og på feltet Quantity har jeg dette:

<input type="text" name="Quantity" size="20" onsubmit="return valider(this);">
Avatar billede roenving Novice
22. marts 2007 - 11:15 #3
Det var inegn tilfældighed, at jeg skrev, at kaldet skulle ske fra form-tagget, for der er ingen andre steder, man kan forhindre end submit ved fejl !-)

-- men det vil jo være smart at skrive de to ting sammen, f.eks. sådan:

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

<script type="text/javascript">
function valider(f){
  if(f.Quantity.value == "" || +f.Quantity.value < 50){
    alert("Du skal skrive et tal, der er større end 50 !-)");
    f.Quantity.focus();
    return false;
  }
  if(f.Sender.match(/@/)!=1 || !f.Sender.match(/^.*@\w+\.[a-z]{2,6}$/)){
    alert("Du skal skrive en gyldig email-adresse !-)");
    f.Sender.focus();
    return false;
  }
  return true;
}
</script>
Avatar billede roenving Novice
22. marts 2007 - 11:16 #4
PS. Hvis du skal uddele point for dette spørgsmål, må du gøre det i javascript-kategorien, da der ikke er nogen mening i, at der skrives Java på dem !o]
Avatar billede roenving Novice
22. marts 2007 - 11:17 #5
Argh, den skal da lige udvides til:

  if(f.Sender.match(/@/)!=1 || !f.Sender.match(/^.*@(\w+\.)+[a-z]{2,6}$/)){
Avatar billede aurum Nybegynder
22. marts 2007 - 11:49 #6
Det virker PERFEKT! Tusind tak.

Jeg havde lige overset, at det var fra form-tag'et kaldet skulle ske *flov*.

Skal jeg oprette et spørgsmål i javascriptkategorien, hvor du kan lægge dit svar?
Avatar billede aurum Nybegynder
22. marts 2007 - 11:51 #7
Hov, scriptet validerer ikke min mailadressen
Avatar billede roenving Novice
22. marts 2007 - 12:07 #8
Hvad gør den forkert ?-)

-- ovenstående tester om der kun er eet @ og at der efter @ findes mindst en gruppe, der består af ordtegn og punktum, og bagest 2-6 tegn mellem a-z ...

-- der mangler godt nok et i bagest, så den er caseInsensitive, så det skal tilføjes:

  if(f.Sender.match(/@/)!=1 || !f.Sender.match(/^.*@(\w+\.)+[a-z]{2,6}$/i)){

-- og det er helt med vilje, at jeg ikke tester om der er noget foran @-tegnet, for det behøver der ifølge den gældende standard ikke at være (http://rfc.net/rfc2821.html se 2.3.10, sidste punktum !-)

-- og ja, hvis du vil af med point til mig, lægger du selv svar her og accepterer det, opretter et spørgsmål i javascript-kategorien med overskriften 'Point til brugernavn' og lægger en reference i spørgsmålsteksten til dette spørgsmål !-)
Avatar billede aurum Nybegynder
22. marts 2007 - 12:09 #9
Jeg har bare skrevet 4 bogstaver i email-feltet, og det accepterer den, selvom der mangler både @ og punktum
Avatar billede roenving Novice
22. marts 2007 - 12:13 #10
Argh, gaaab, der manglede jo også liiige en væsentlighed:

  if(f.Sender.value.match(/@/)!=1 || !f.Sender.value.match(/^.*@(\w+\.)+[a-z]{2,6}$/i)){
Avatar billede roenving Novice
22. marts 2007 - 12:18 #11
-- og der var flere fejl:

  if(f.Sender.value.match(/@/g).length!=1 || !f.Sender.value.match(/^.*@(\w+\.)+[a-z]{2,6}$/i)){
Avatar billede aurum Nybegynder
22. marts 2007 - 12:19 #12
Hmm, nu virker den faktisk så godt (:-)), at den slet ikke vil acceptere noget - ej heller når jeg skriver en gyldig mailadresse
Avatar billede roenving Novice
22. marts 2007 - 12:35 #13
-- fik du den sidste med ?-)
Avatar billede aurum Nybegynder
22. marts 2007 - 13:15 #14
NU virker det! Tak, tak, tak


Jeg har oprettet et spørgsmål her:
http://www.eksperten.dk/spm/769464

Vil du lægge et svar der?

Så lukker jeg denne...
Avatar billede aurum Nybegynder
22. marts 2007 - 13:17 #15
Svar til  mig selv...
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
Kurser inden for grundlæggende programmering

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