login  Naam:   Wachtwoord: 
Registreer je!
 Forum

werkt niet in IE, wel FF, Opera en Safari

Offline hugover - 12/08/2008 18:20
Avatar van hugoverNieuw lid Dit is een code van een bestelformuliertje. De bedoeling is dat een een gestructureerde nummer wordt berekend. Bijv persnr 0340 en activnr 0803939 geven de gestruccode 080-3930-34063 met hulp van mod97. Heb dit script samengebracht met delen van andere scripts, ken dus heel weinig van Java.
Naargelang de browser kan men van veld veranderen met tab of enter. Maar soms wordt bij gebruik van enter het formulier al verzonden voordat het volledig is ingevuld. Graag zou ik hebben dat men veld kan invullen, enteren en naar een volgend veld springen. Bij het invullen van de persnr, wordt direct hierna al de struccode berekend. Alleen wanneer ik op "formulier zenden" klik met de muis, dan pas zou het formulier mogen verzonden worden.
Wie kan mij helpen, waarvoor dank bij voorbaat. 


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6. <meta http-equiv="Content-Language" content="nl-be" />
  7. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  8. <title>Bestelformulier</title>
  9.  
  10. <script language="JavaScript" type="text/javascript">
  11.  
  12. function update(form){
  13. var totaal = 0;
  14. var persnr = "";
  15. form.bedrag1.value= 15 * form.aantal1.value;
  16. totaal += (15 * form.aantal1.value);
  17. form.bedrag2.value= 25 * form.aantal2.value;
  18. totaal += (25 * form.aantal2.value);
  19. form.bedrag3.value= 1 * form.aantal3.value;
  20. totaal += (1 * form.aantal3.value);
  21. form.bedrag4.value= 1 * form.aantal4.value;
  22. totaal += (1 * form.aantal4.value);
  23. form.totaal.value= parseFloat(totaal);
  24. var struct1 = "";
  25. form.struct1.value = form.persnr.value;
  26. var sub;
  27. sub = form.activiteit.value;
  28. var tekst;
  29. form.tekst.value=sub.substring(0,6)+form.persnr.value.substring(0,4);
  30. var rest;
  31. form.rest.value = form.tekst.value % 97;
  32. var rest2 ="0";
  33. if (form.rest.value<10) {
  34. form.rest.value=rest2+form.rest.value
  35. }
  36. else {
  37. form.rest.value=form.rest.value
  38. };
  39. var struccode;
  40. form.struccode.value = " "+sub.substring(0,3)+"-"+sub.substring(3,6)+form.struct1.value.substring(0,1)+"-"+form.struct1.value.substring(1,4)+form.rest.value;
  41. }
  42.  
  43. function herstel(){
  44. if (confirm('Weet u zeker dat u de huidige gegevens wilt wissen?')){
  45. document.form1.reset();
  46. return true;
  47. }
  48. else{
  49. return false;
  50. }
  51. }
  52. </script>
  53. </head>
  54.  
  55. <body>
  56.  
  57.  
  58. <form>
  59.  
  60. <pre>
  61. Personeelsnummer: <input type="text" name="persnr" size="4" /> 0123
  62. Naam en voornaam: <input type="text" name="naam" size="50" />
  63. Telefoonnummer: <input type="text" name="telefoon" size="11" /> ../...... of ..../......
  64. E-mail: <input type="text" name="email" size="60" />
  65.  
  66. Activiteit: <select size="1" name="activiteit">
  67. <option>080393 - 25 apr 2008 - Boottocht voor de Seniores</option>
  68. <option>080388 - 17 mei 2008 - Ruienwandeling in Antwerpen</option>
  69. <option>080417 - 17 mei 2008 - Water Shuttle Tornooi VMW</option>
  70. <option>080394 - 31 mei 2008 - Ochtendwandeling in Zoerselbos</option>
  71. </select>
  72.  
  73. Kaarten voor leden € 15 <input type="text" value="0" name="aantal1" size="5" onChange="update(this.form)" /> te betalen <input type="text" name="bedrag1" size="8" onFocus="blur()" />
  74. Kaarten voor niet-leden € 25 <input type="text" value="0" name="aantal2" size="5" onChange="update(this.form)" /> te betalen <input type="text" name="bedrag2" size="8" onFocus="blur()" />
  75. Administratiekosten € 1 <input type="text" value="0" name="aantal3" size="5" onChange="update(this.form)" /> te betalen <input type="text" name="bedrag3" size="8" onFocus="blur()" />
  76. Verzendkosten € 1 <input type="text" value="0" name="aantal4" size="5" onChange="update(this.form)" /> te betalen <input type="text" name="bedrag4" size="8" onFocus="blur()" />
  77. Totaal te betalen <input type="text" name="totaal" size="8" align="right" onFocus="blur()" />
  78. </pre>
  79. <fieldset><legend> Gelieve te betalen op rekening 979-7424736-43</legend>
  80. <pre>
  81. Gestructureerde code <input type="text" name="struccode" size="20" onchange="update(this.form)" onFocus="blur()" />
  82. </pre>
  83. </fieldset>
  84. <br />
  85. <input type="button" value="formulier verzenden" onclick="this.form.submit()" />
  86. <input type="reset" value="formulier leegmaken" />
  87. <input type="hidden" name="struct1" size="8" onchange="update(this.form)" onFocus="blur()" />
  88. <input type="hidden" name="tekst" size="50" onchange="update(this.form)" onFocus="blur()" />
  89. <input type="hidden" name="rest" size="40" onchange="update(this.form)" onFocus="blur()" />
  90.  
  91. </form>
  92. </body>
  93. </html>

2 antwoorden

Gesponsorde links
Offline Wim - 12/08/2008 20:34
Avatar van Wim Crew algemeen die enter zal je nooit lukken vrees ik; dat automatisch invullen kan je doen via "onchange". Een eventuele tab-volgorde kan je maken met "tabindex". (tabindex="1", tabindex="2", ...)

dat laatste:
<input type="button" onclick="form.submit();"> of iets in die aard..?
Offline Douwedecoder - 23/08/2008 16:13 (laatste wijziging 23/08/2008 17:10)
Avatar van Douwedecoder Nieuw lid
  1. <form onsubmit="javascript: return myfunction('myparam')">
  2.  
  3. form velden etc
  4.  
  5. </form>


Het formulier zal nu nooit verzonden worden tenzij het het "true" terugkrijgt van de functie "myfunction". Ongeacht of het verzenden gebeurd met de enter-toets of met de de submit button.

wat betreft enter (heb je dit echt nodig na bovenstaande?)

  1. <input type="text" id="myinput" />
  2. // let op: dit pas na het element geinstantieerd wordt
  3. catchEnter("myinput");


  1. function catchEnter(element) {
  2. var base = document.getElementById(element);
  3. base.onkeydown = function(event) {
  4. try { //IE
  5. var whatkey = event.keyCode;
  6. } catch (e) {
  7. try { //FF
  8. var whatkey = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
  9. } catch (e) {
  10. try { //IE again. get me Bi... ah, never mind :(
  11. var whatkey = window.event.keyCode;
  12. } catch (e) {
  13. alert('Cannot read event');
  14. }
  15. }
  16. }
  17. if(whatkey == 13) { //catch enter
  18. alert('enter was pressed');
  19. return false;
  20. }
  21. }
  22. }


succes 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s