Avatar billede mariay Nybegynder
07. maj 2003 - 09:52 Der er 6 kommentarer og
1 løsning

Form validering i Dreamweaver MX

Jeg har en form, som jeg validerer med Dreamweaver.

To ting skal valideres. Dels om feltet er udfyldt eller ej og dels (i nogle felter) om det er tal eller email.

Valideringen fungerer faktisk fint, men ved det sidste tjek (tal eller email) sender den formen afsted direkte efter at man har klikket ok til fejlmeddelelsen.

Jeg viser her Dreamweaver koden, selvom jeg ved den ser kringlet ud.

Er der nogen der ved, om man lige kan lave en fiks lille rettelse, så den ikke sender formen afsted, før alt er udfyldt korrekt? Jeg er ikke den store JavaScript haj!!

---------------------------------------------------

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+=' '+nm+' - please fill in your valid e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+=' '+nm+' - please fill in a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+=' '+nm+' - please fill in a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += 'Please fill in '+nm+'\n'; }
  } if (errors) alert('\n'+errors);
  document.MM_returnValue = (errors == '');
}
Avatar billede pelkjaer Nybegynder
07. maj 2003 - 10:30 #1
Det er ikke funktionen der er noget galt med, vi vil hellere se din form og evt. inputs hvis du kører returns derfra.
Avatar billede mariay Nybegynder
07. maj 2003 - 10:33 #2
Jamen, så kommer den her, det er en lidt længere form - håber du kan finde hovede og hale i det:

<form action="http://www.pebeo.dk/cgi-bin/formmail.pl" method="get" name="form1" onSubmit="MM_validateForm('Last name','','R');MM_validateForm('First name','','R');MM_validateForm('Address','','R');MM_validateForm('Postal code','','RisNum');MM_validateForm('City','','R');MM_validateForm('Country','','R');MM_validateForm('E-mail','','RisEmail');MM_validateForm('Rotaract Club','','R');MM_validateForm('District','','R');return document.MM_returnValue">
        <table width="465" border="0" cellpadding="4" cellspacing="0" bordercolor="#FFFFFF">
          <tr class="brodtekst">
            <td width="110" valign="top">
<input type="hidden" name="recipient" value="info@royalrotaract.dk">
              <input type=hidden name="redirect" value="http://www.rotaract.dk/nordact2003/thankyou.php">
              Last name</td>
            <td colspan="3"><input name="Last name" type="text" class="input" id="Last name" size="30">
            </td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">First name</td>
            <td colspan="3"><input name="First name" type="text" class="input" id="First name" size="30"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Address</td>
            <td colspan="3"><input name="Address" type="text" class="input" id="Address" size="50"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Postal code</td>
            <td colspan="3"><input name="Postal code" type="text" class="input" id="Postal code" size="10">
              &nbsp;&nbsp;&nbsp;City
              <input name="City" type="text" class="input" id="City" size="30"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Country</td>
            <td colspan="3"><input name="Country" type="text" class="input" id="Country" size="30"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">E-mail</td>
            <td colspan="3"><input name="E-mail" type="text" class="input" id="E-mail" size="30"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Phone private</td>
            <td colspan="3"><input name="Phone private" type="text" class="input" id="Phone private" size="20"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Phone work</td>
            <td colspan="3"><input name="Phone work" type="text" class="input" id="Phone work" size="20"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Cell phone</td>
            <td colspan="3"><input name="Cell phone" type="text" class="input" id="Cell phone" size="20"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Rotaract Club</td>
            <td colspan="3"> <input name="Rotaract Club" type="text" class="input" id="Rotaract Club" size="50">
            </td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">District</td>
            <td colspan="3"><input name="District" type="text" class="input" id="District" size="4"></td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Date of birth</td>
            <td> <p>Day <br>
                <select name="Day of birth" size="1" class="button" id="Day of birth">
                  <option selected>Please select</option>
                  <option>1</option>
                  <option>2</option>
                  <option>3</option>
                  <option>4</option>
                  <option>5</option>
                  <option>6</option>
                  <option>7</option>
                  <option>8</option>
                  <option>9</option>
                  <option>10</option>
                  <option>11</option>
                  <option>12</option>
                  <option>13</option>
                  <option>14</option>
                  <option>15</option>
                  <option>16</option>
                  <option>17</option>
                  <option>18</option>
                  <option>19</option>
                  <option>20</option>
                  <option>21</option>
                  <option>22</option>
                  <option>23</option>
                  <option>24</option>
                  <option>25</option>
                  <option>26</option>
                  <option>27</option>
                  <option>28</option>
                  <option>29</option>
                  <option>30</option>
                  <option>31</option>
                </select>
              </p></td>
            <td><p>Month<br>
                <select name="Month of birth" size="1" class="button" id="Month of birth">
                  <option selected>Please select</option>
                  <option>1</option>
                  <option>2</option>
                  <option>3</option>
                  <option>4</option>
                  <option>5</option>
                  <option>6</option>
                  <option>7</option>
                  <option>8</option>
                  <option>9</option>
                  <option>10</option>
                  <option>11</option>
                  <option>12</option>
                </select>
              </p></td>
            <td><p>Year<br>
                <select name="Year of birth" size="1" class="button" id="Year of birth">
                  <option selected>Please select</option>
                  <option>1972</option>
                  <option>1973</option>
                  <option>1974</option>
                  <option>1975</option>
                  <option>1976</option>
                  <option>1977</option>
                  <option>1978</option>
                  <option>1979</option>
                  <option>1980</option>
                  <option>1981</option>
                  <option>1982</option>
                  <option>1983</option>
                  <option>1984</option>
                  <option>1985</option>
                  <option>1986</option>
                  <option>Other</option>
                </select>
              </p></td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Sex</td>
            <td colspan="3"> <input type="radio" name="Sex" value="Female">
              Female&nbsp;&nbsp; <input type="radio" name="Sex" value="Male">
              Male</td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">Mixed rooms?</td>
            <td colspan="3"><input type="radio" name="mixed rooms" value="Yes">
              Yes
              <input type="radio" name="mixed rooms" value="No">
              No </td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">Special medical care needed?</td>
            <td colspan="3">
<p>
                <input type="radio" name="Medical" value="Yes">
                Yes - please specify:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="radio" name="Medical" value="No">
                No&nbsp;&nbsp;<br>
                <br>
                <textarea name="Medical" cols="50" rows="3" class="input" id="Medical"></textarea>
              </p></td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">Arrangement</td>
            <td colspan="3"><p>
                <input type="radio" name="Arrangement" value="nummer 1">
                Arrangement 1 - DKK 850 (<a href="arrangements.php" class="brodtekst-link">more
                information</a>)</p>
              <p>
                <input type="radio" name="Arrangement" value="nummer 2">
                Arrangement 2 - DKK 1050 or 1400 (<a href="arrangements.php" class="brodtekst-link">more
                information</a>)</p></td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">Optional message</td>
            <td colspan="3"> <textarea name="Optional message" cols="50" rows="5" class="input" id="Optional message"></textarea>
            </td>
          </tr>
          <tr class="brodtekst">
            <td valign="top">&nbsp;</td>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">&nbsp;</td>
            <td colspan="3">By submitting this form you confirm that you have
              read and understood the <a href="payment.php" class="brodtekst-link">registration
              and payment notes</a> </td>
          </tr>
          <tr class="brodtekst">
            <td width="110" valign="top">&nbsp;</td>
            <td colspan="3"> <input name="Submit" type="Submit" class="input" id="Submit" value="Submit registration">
              &nbsp; <input name="reset" type="reset" class="input" value="Clear fields">
            </td>
          </tr>
        </table>
        </form>
Avatar billede pelkjaer Nybegynder
07. maj 2003 - 10:50 #3
<form action="http://www.pebeo.dk/cgi-bin/formmail.pl" method="get" name="form1" onSubmit="MM_validateForm('Last name','','R','First name','','R','Address','','R','Postal code','','RisNum','City','','R','Country','','R','E-mail','','RisEmail','Rotaract Club','','R','District','','R');return document.MM_returnValue">
Avatar billede mariay Nybegynder
07. maj 2003 - 11:04 #4
Yes!

Der var lige ang. District, som skal være et nummer, men det har jeg selv rettet til. Nu virker det. Alle tiders. Tusind tak. Hvordan giver jeg dig point, skal du ikke lave et "svar" først?

Lige et ekstra spørgsmål, kan man også validere på radio buttons og list values?
Avatar billede pelkjaer Nybegynder
07. maj 2003 - 11:07 #5
Jeg lægger et svar.

Nej DW's egen validering har nogle begrænsninger, men jo det er muligt at validere alt.
Download denne extention (checkform) fra http://www.yaromat.com/dw/?t=Behavior&r=validation
Den kan en del mere end den standard i DW.
Avatar billede mariay Nybegynder
07. maj 2003 - 21:51 #6
Hej igen

Lige en sjov ting. Hvis man bruger backspace i et af list felterne forsvinder hele formen!!! Ja, ikke at jeg ved hvorfor man skulle gøre det, men det er da ret underligt. Prøv selv under Registration Form på http://www.rotaract.dk/nordact2003/index.php

Er det noget der er set før? Og kan man forhindre det?
Avatar billede pelkjaer Nybegynder
07. maj 2003 - 22:06 #7
Det har jeg egentlig aldrig tænkt over - men det er helt generelt kan jeg se.
Derfor ser jeg det heller ikke som noget problem, selvom det skam vil være muligt at disable denne key.
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