login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Form validatie (Opgelost)

Offline Koek - 16/06/2009 20:09 (laatste wijziging 16/06/2009 20:11)
Avatar van KoekNieuw lid Hallo,
Sinds kort ben ik me een beetje aan het verdiepen in Javascript, en ik ben tegen een probleempje aangelopen. Ik weet niet of het kan, wat ik wil, maar ik had dit scriptje geschreven:

  1. function checkFill() {
  2. var username = document.new_user.username;
  3.  
  4. if (username.value == "") {
  5. username.style.backgroundImage = 'url(img/details/smallitems/check_red.png)';
  6. }
  7. else {
  8. username.style.backgroundImage = 'url(img/details/smallitems/check_green.png)';
  9. }
  10. }


Wat ik bijvoorbeeld in een input field aanriep met onblur="checkFill()". Dat werkte, maar op deze manier moest ik alle velden, bijvoorbeeld password of voornaam, ook in die functie gaan voegen. Nu probeerde ik dus het volgende:

  1. function checkFill(fieldName) {
  2. var fieldName= document.new_user.fieldName;
  3.  
  4. if (fieldName.value == "") {
  5. fieldName.style.backgroundImage = 'url(img/details/smallitems/check_red.png)';
  6. }
  7. else {
  8. fieldName.style.backgroundImage = 'url(img/details/smallitems/check_green.png)';
  9. }
  10. }


Aangeroepen met onblur="checkFill(username)".
Maar dit werkt niet, althans, niet op deze manier...
Ik vraag me af hoe ik dit werkend kan krijgen?

Mvg,
Maikel.

8 antwoorden

Gesponsorde links
Offline Koen - 16/06/2009 20:14
Avatar van Koen PHP expert Gebruik document.getElementById(fieldName), wel even "fieldname" het id "fieldname" toekennen.
Meer info:
http://www.w3sc...ntbyid.asp
Offline Koek - 16/06/2009 20:26
Avatar van Koek Nieuw lid Dat werkt ook niet helemaal zoals de bedoeling is... Als ik nu meerdere velden heb, maakt het niet uit welke ik 'onblur' bij doe, sowieso word in het 1e veld de functie uitgevoer...

Het is de bedoeling dat de functie in alle velden word uitgevoerd.
Offline henver - 16/06/2009 20:29 (laatste wijziging 16/06/2009 20:31)
Avatar van henver HTML gevorderde
  1. function checkFill(fieldName) {
  2. value = document.new_user.fieldName.value;
  3.  
  4. if (value== "") {
  5. fieldName.style.backgroundImage = 'url(img/details/smallitems/check_red.png)';
  6. }
  7. else {
  8. fieldName.style.backgroundImage = 'url(img/details/smallitems/check_green.png)';
  9. }
  10. }

  1. <input type="text" name="username" onblur="checkFill(this.name)" />


Ook niet?
Offline Koek - 16/06/2009 20:33 (laatste wijziging 16/06/2009 20:37)
Avatar van Koek Nieuw lid Hm nee, zo werkt die totaal niet meer.
Wat me ook wel logisch lijkt, wat dan zou er in principe staan na de if:
document.new_user.username.value.style.

En dat kan volgens mij niet werken.
En als ik die value er af haal en in het argument erbij zet ben ik weer terug bij af.
Offline henver - 16/06/2009 20:44
Avatar van henver HTML gevorderde
  1. function checkFill(fieldName) {
  2.  
  3. if (document.new_user.fieldName.value == "") {
  4. document.new_user.fieldName.style.backgroundImage = 'url(img/details/smallitems/check_red.png)';
  5. }
  6. else {
  7. document.new_user.fieldName.style.backgroundImage = 'url(img/details/smallitems/check_green.png)';
  8. }
  9. }
Offline Koek - 16/06/2009 20:48
Avatar van Koek Nieuw lid Nee, zo doet hij ook niets..
Niet met:
<input type="text" name="username" onblur="checkFill(this.name)" />
of met:
<input type="text" name="username" onblur="checkFill('username')" />
Offline Koen - 16/06/2009 21:24
Avatar van Koen PHP expert Ik snap niet waarom je het zo moeilijk maakt terwijl gewoon rechtstreeks het object kan doorspelen via 'this':
  1. function checkFill(field) {
  2.  
  3. if (field.value == "") {
  4. field.style.backgroundImage = 'url(img/details/smallitems/check_red.png)';
  5. }
  6. else {
  7. field.style.backgroundImage = 'url(img/details/smallitems/check_green.png)';
  8. }
  9. }


  1. <input type="text" name="username" onblur="checkFill(this)" />
Offline Koek - 16/06/2009 21:54
Avatar van Koek Nieuw lid Top! Bedankt.

De reden waarom ik het mezelf zo 'moelijk' maakte, is omdat ik gewoonweg nog niet wist hoe ik het moest doen.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.171s