Toon posts:

[JS] Een Form check

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function checkform ( form )
    
{

   // Zorgt dat als er alleen maar spaties zijn dat deze weggaan. 
   value = form.firstname.value;
   while (value.charAt(value.length-1) == " "){value = value.substring(0,value.length-1);}
   while(value.substring(0,1) ==" "){value = value.substring(1,value.length);}
   form.firstname.value = value;

              if (form.firstname.value == "")
    {
            alert( "Vul een naam in" );
                return false ;
    }
}



Nu wil ik dus van deze code eigenlijk de functie check() maken, maar hoe kan ik die aanroepen. Want om ddit stukje van 10 regels code nou 10 keer te gebruiken is ook niks.

Ik dacht aan zoiets, maar dat werkt niet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function check (form,naam)
{

   // Zorgt dat als er alleen maar spaties zijn dat deze weggaan. 
   value = form.firstname.value;
   while (value.charAt(value.length-1) == " "){value = value.substring(0,value.length-1);}
   while(value.substring(0,1) ==" "){value = value.substring(1,value.length);}
   form.firstname.value = value;

              if (form.firstname.value == "")
    {
            alert( "Vul een naam in" );
                return false ;
    }
}



En dan die weer aanroepen in de fucntie checkform.
Hoe kan ik dit het beste doen ?

  • TheDjasp
  • Registratie: Juni 2001
  • Laatst online: 26-06 08:16

TheDjasp

het wordt toch niks

Wat wil je nou precies? Wat is nou precies het verschil tussen de twee code blokken (behalve dan de argumenten die meegestuurd moeten worden...)

Ik zou je probleem even her formuleren, al kan ik me niet aan de indruk ontrekken dat dit een vrij basic 'probleem' is.

Omdat het KAN, HOEFT het nog niet!
I haven't been ignoring you; I've been prioritizing you. Hanglooz; "chromeless windows en fullscreen zuigen allebei als een 1600Watt Nilfisk"
logt nu ook


Verwijderd

Topicstarter
je roept met de submit button, de eerste functie aan.

Dan moet die functie 15 textfields checken of er wel wat instaat.
Om daar dan allemaal aparte text voor te gebruiken vind ik wat overbodig. Dus dat wil ik ook in een functie zetten.

Dus dan krijg je een functie in een functie.
En dat wil niet helemaal.

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function fnCheckSpatie(objElement)
{
   strValue = objElement.value;

   while (strValue.charAt(strValue.length-1) == " ")
   {
      strValue = strValue.substring(0,strValue.length-1);
   }

   while(strValue.substring(0,1) ==" ")
   {
      strValue = strValue.substring(1,strValue.length);
   }

    if (strValue == "")
    {
       return false ;
    }
    else return strValue;
}

PHP:
1
<input type="text" name="Naam" onBlur="varIets = (fnCheckSpatie(this)) ? (fnCheckSpatie(this)) : alert('Vul je '+this.name+' eerst in');" />

Ik weet niet of dit is wat je bedoeld.. maar misschien heb ik het goed geraden :)

//edit:
niet goed geradeh dus :P maar nogmaals proberen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
arrVelden = new Array();
arrVelden[0] = 'naam';

function fnCheckSpatie(objElement)
{
   strValue = objElement.value;

   while (strValue.charAt(strValue.length-1) == " ")
   {
      strValue = strValue.substring(0,strValue.length-1);
   }

   while(strValue.substring(0,1) ==" ")
   {
      strValue = strValue.substring(1,strValue.length);
   }

    if (strValue == "")
    {
       return false ;
    }
    else return strValue;
}

function fnCheckFields()
{
   bError = false;

   for (var int = 0; int < arrVelden.length; int++)
   {
      varIets = (fnCheckSpatie(document.forms['formNaam'].elements[arrVelden[i]])) ? document.forms['formNaam'].elements[arrVelden[i]] : bError = arrVelden[i];
       if (bError) break; 
   }
   if (bError) { alert(bError + ' is niet (juist) ingevuld'); return false; }
}

PHP:
1
<input type="submit" value="Verstuur" onSubmit="return fnCheckFields();"

Niet getest..
Je zou eventueel ook alle formelementen af kunnen lopen en kijken of het type 'text' is.. maar waarschijnlijk moeten niet alle textvelden gecontroleerd worden, dus is het bovenstaande denk ik het eenvoudigst..

[ Voor 0% gewijzigd door r0bert op 09-10-2002 15:57 . Reden: sorry voor het layoutje :d ]


Verwijderd

Topicstarter
Nee, helaas niet.

Het moet de functie formcheck(form) worden
met daarin de fucntie checkspatie(form,name).

Dus
code:
1
2
3
4
5
6
7
8
9
10
11
function formcheck(form)
{
   function checkspatie(form,name)
   {
   doe alle dingetjes voor spaties weghalen en kijk dan ie leeg is.
   }

checkspace(wok,naam)
checkspace(wok,straat)

}


Kan dit zo ?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 13:53

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function check (formulier, veldnaam){

   // Zorgt dat als er alleen maar spaties zijn dat deze weggaan. 
   waarde = document.forms[formulier].elements[veldnaam].value;
   while (waarde.charAt(value.length-1) == " "){
     waarde = waarde.substring(0,waarde.length-1);
   }

   while(waarde.substring(0,1) ==" "){
     waarde = waarde.substring(1,waarde.length);
   }

   document.forms[formulier].elements[veldnaam].value = waarde;

   if (document.forms[formulier].elements[veldnaam].value == ""){
      alert( "Vul een naam in" );
      return false ;
   }
}


Dit is wat ik eruit opmaak. Je hebt een functie die de waarde van een veld controleert op spaties en die eruit haalt. Omdat je veel velden wil controleren, moet je die functie vaak gebruiken, maar wil je niet de hele tijd die functie copy en pasten met veranderde namen.

Nu gebruik je dus dit:
check('naamvanhetformulier', 'naam van het veld om te checken');

hth :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Verwijderd schreef op 09 oktober 2002 @ 15:57:
Nee, helaas niet.

Het moet de functie formcheck(form) worden
met daarin de fucntie checkspatie(form,name).

Dus
code:
1
2
3
4
5
6
7
8
9
10
11
function formcheck(form)
{
   function checkspatie(form,name)
   {
   doe alle dingetjes voor spaties weghalen en kijk dan ie leeg is.
   }

checkspace(wok,naam)
checkspace(wok,straat)

}


Kan dit zo ?


Nee dat kan niet zo.

Misschien ff wat Javascript tutorials zoeken? :)

Het principe is dat je een functie hebt die een string kan testen of die goed is (in jouw geval iets met die spaties).

Deze functie roep je vervolgens aan voor ieder form-element dat je wilt checken. Hoe doe je dat? Bij voorkeur onsubmit van je form.

Zoek anders een kant-en-klare formvalidator.. er zijn er honderden van ;)
Pagina: 1