login  Naam:   Wachtwoord: 
Registreer je!
 Forum

'document.form.aantals.value' is leeg of geen object

Offline p1n0 - 16/08/2006 09:46
Avatar van p1n0Nieuw lid Hallo,

Ik gebruik een javascriptje om te checken of het tekstveld 'aantals' in het onderstaande formulier is ingevuld, maar krijg de error: 'document.form.aantals.value' is leeg of geen object. Erg vreemd wat dit script gebruik is ook op een contactpagina, maar daar werkt het wel gewoon!

Misschien een typefout? Iemand een idee?

Alvast bedankt


  1. <script language="javascript" type="text/javascript">
  2. function checkAantal()
  3. {
  4. if (document.form.aantals.value == "")
  5. {
  6. alert ("\r Vul het aantal producten in!");
  7. document.form.aantals.focus();
  8. return false;
  9. }
  10. }
  11. </script>


  1. <?
  2. echo "<tr><td colspan='2'>";
  3. echo "<form action=\"producten.php\" name=\"form\" onSubmit=\"return checkAantal();\">
  4. <input type=\"hidden\" name=\"artikelnummer\" value=\"$row->artikelnummer\">
  5. <input type=\"hidden\" name=\"aantals\" value=\"$aantals\">
  6. <input type=\"hidden\" name=\"sub\" value=\"$row->subcategorie\">";
  7. //echo "<tr><td align=right colspan='2'><b>Bestel artikel</b></td></tr>";
  8. echo "<table width='100%'><tr><td colspan='3'><table cellpadding='0' cellspacing='0' border='0' width='100%'><tr><td background='../images/stippellijn.jpg'><img src='../spacer.jpg' height='1'></td></tr></table></td></tr>";
  9. echo "<tr><td align='right' width='70%'>Aantal: <input name=\"aantals\" type=\"text\" class=\"Textvakaantal\" id=\"aantals\" maxlength=\"5\"></td><td>&nbsp;</td>
  10. <td width='30%' align='right'><input type=\"image\" src=\"../images/But_bestellen.jpg\" name=\"submit\" onMouseOver=\"this.src='../images/But_bestellen_over.jpg'\" onMouseOut=\"this.src='../images/But_bestellen.jpg'\" WIDTH=\"150\" HEIGHT=\"20\" alt=\"Bestellen\"></td></tr>";
  11. echo "<tr><td colspan='3'><table cellpadding='0' cellspacing='0' border='0' width='100%'><tr><td background='../images/stippellijn.jpg'><img src='../spacer.jpg' height='1'></td></tr></table></td></tr>";
  12. echo "</table></form></td></tr>";
  13. ?>

11 antwoorden

Gesponsorde links
Offline Thomas - 16/08/2006 10:33
Avatar van Thomas Moderator Je gebruikt de naam "aantals" twee keer in je formulier...
Offline p1n0 - 16/08/2006 10:39
Avatar van p1n0 Nieuw lid
Citaat:
Je gebruikt de naam "aantals" twee keer in je formulier...


Ik heb het hidden field weggehaald, maar blijf dezelfde error krijgen...
Offline lemoinet - 16/08/2006 10:58
Avatar van lemoinet PHP gevorderde verander eens document.form.aantals.value in
document.forms['form'].elements['aantals'].value
Offline p1n0 - 16/08/2006 11:12
Avatar van p1n0 Nieuw lid
Citaat:
verander eens document.form.aantals.value in
document.forms['form'].elements['aantals'].value


Nu krijg ik de error: 'document.forms.form.elements.aantals' is leeg of geen object
Offline Maarten - 16/08/2006 11:17 (laatste wijziging 16/08/2006 11:18)
Avatar van Maarten Erelid En doe het eens zo:
  1. <?php
  2. // Hier nog echt PHP
  3. ?>
  4. <form action="producten.php" name="form" onSubmit="return checkAantal();">
  5. <table>
  6. <tr>
  7. <td colspan="2">
  8. <input type="hidden" name="artikelnummer" value="<?=$row->artikelnummer?>">
  9. <input type="hidden" name="aantals" value="<?=$aantals?>">
  10. <input type="hidden" name="sub" value="<?=$row->subcategorie?>">
  11. </tr>
  12. <!--
  13. <tr>
  14. <td align="right" colspan="2">
  15. <b>Bestel artikel</b>
  16. </td>
  17. </tr>
  18. -->
  19. </table>
  20.  
  21. <table width="100%">
  22. <tr>
  23. <td colspan="3">
  24. <table cellpadding="0" cellspacing="0" border="0" width="100%">
  25. <tr>
  26. <td background="../images/stippellijn.jpg">
  27. <img src="../spacer.jpg" height="1">
  28. </td>
  29. </tr>
  30. </table>
  31. </td>
  32. </tr>
  33. <tr>
  34. <td align="right" width="70%">
  35. Aantal: <input name="aantals" type="text" class="Textvakaantal" id="aantals" maxlength="5">
  36. </td>
  37. <td>&nbsp;</td>
  38. <td width="30%" align="right">
  39. <input type="image" src="../images/But_bestellen.jpg" name="submit" onMouseOver="this.src='../images/But_bestellen_over.jpg'" onMouseOut="this.src='../images/But_bestellen.jpg'" WIDTH="150" HEIGHT="20" alt="Bestellen">
  40. </td>
  41. </tr>
  42. <tr>
  43. <td colspan="3">
  44. <table cellpadding="0" cellspacing="0" border="0" width="100%">
  45. <tr>
  46. <td background="../images/stippellijn.jpg">
  47. <img src="../spacer.jpg" height="1">
  48. </td>
  49. </tr>
  50. </table>
  51. </td>
  52. </tr>
  53. </table>
  54. </form>
  55.  
  56. <?php
  57. // En hier terug PHP
  58. ?>


Op deze manier zie je dat je een </td> en </tr> mistte en dat je code dus een zootje is. Die <form> tag moet ROND je <table> tags, en niet er binnenin.

Het onnodig parsen van HTML neemt "load" in voor de server, dus je moet dat gewoon niet doen. Daarbij is het ook niet overzichtelijk, als je zoals hierboven gaat inspringen per niveau, die je gelijk waar je sluitingstags mist.

Het kan zijn dat het er nu wel een klein beetje anders gaat uitzien, omdat ik niet helemaal wist hoe het er moest uitzien, maar mocht het nu een beetje krom eruitzien kan je dit wel weer rechttrekken dunkt mij, zolang je maar een beetje netter werkt.
Offline lemoinet - 16/08/2006 11:19
Avatar van lemoinet PHP gevorderde
  1. <script type="text/javascript">
  2. function checkAantal()
  3. {
  4. if (document.forms['form'].elements['aantals'].value == "")
  5. {
  6. alert ("\r Vul het aantal producten in!");
  7. document.forms['form'].elements['aantals'].focus();
  8. return false;
  9. }
  10. }
  11. </script>


haal hidden field aantals eens weg

normaal moet het dan werken
Offline Thomas - 16/08/2006 11:26
Avatar van Thomas Moderator * Het formulier bevat geen method - voeg method="post" toe
* Misschien is de naam "form" niet echt geschikt als form-naam?
Dit zou je nog kunnen veranderen als de eerste * niet werkt.
Offline WumTol - 16/08/2006 11:33
Avatar van WumTol PHP beginner Probeer dit eens:

if (!document.forms[0].elements['aantals'].value)
Offline p1n0 - 16/08/2006 11:53
Avatar van p1n0 Nieuw lid Ik heb alle bovenstaande opties geprobeerd, maar blijf steeds dezelfde error krijgen, snap er echt niks meer van!!
Offline Ontani - 16/08/2006 13:35
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
probeer eens met een ID te werken:

<input type="text" id="aantals" ... />

en in je javascript:

document.getElementById('aantals').value = ""
Offline p1n0 - 16/08/2006 16:13
Avatar van p1n0 Nieuw lid
Citaat:
probeer eens met een ID te werken:

<input type="text" id="aantals" ... />

en in je javascript:

document.getElementById('aantals').value = ""


Ja dit werkt!! Bedankt! (Alleen met ==)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s