Avatar billede krk Nybegynder
31. maj 2006 - 10:33 Der er 13 kommentarer og
1 løsning

Siden indeholder fejl - hjælp

Jeg har en formular hvor dataen bliver sendt til en database, det virker fint, men nu har jeg sat noget validering på min formular.
Validereing scriptet har jeg gemt i en .js fil. Virker egentlig fint, men jeg får en fejl. Eksemplet kan ses på http://zicon.dk/Salon_LD/index2.php (prøv bare løs, det er et test site)
Feljen opstår når jeg skriver onSubmit='return checkkontakt(this)' i min <form>. Altså som dette her: <form  method='post' action='../content/nyhedsbrev_database.php' onSubmit='return checkkontakt(this)' enctype='multipart/form-data'>

Er der nogen der kan give en forklaring
Avatar billede krk Nybegynder
31. maj 2006 - 10:35 #1
Skal måske lige nævne at det er under linket "nyhedsbrev" at eksemplet er :-)
Avatar billede tfswebguy Nybegynder
31. maj 2006 - 10:39 #2
ingen fejl her....
Avatar billede krk Nybegynder
31. maj 2006 - 10:42 #3
er du sikker?
Jeg kommer godt nok videre til næste side hvor der står at jeg er tilmeldt nyhedsbrevet... eller noget i den retning, men når jeg kigger ned i statuslinien kommer der kortvarigt en gul advarsels op. Det er den fejl jeg tænker på
Avatar billede krk Nybegynder
31. maj 2006 - 10:42 #4
kan jeg få dig til at prøve igen
Avatar billede tfswebguy Nybegynder
31. maj 2006 - 10:46 #5
jepper.. prøver igen...
Avatar billede tfswebguy Nybegynder
31. maj 2006 - 10:48 #6
hmm.. kan godt se det nu.. men ved ikke lige hvad fejlen er.. (Den forsvinder lidt hurtigt den advarsel)
Avatar billede krk Nybegynder
31. maj 2006 - 10:49 #7
Den skriver: Objektet understøtter ikke denne egenskab eller metode!!
Hjælper det?
Avatar billede krk Nybegynder
31. maj 2006 - 10:50 #8
Hvis jeg fjerner onSubmit='return checkkontakt(this)' så forsvinder fejlen, men så får jeg jo heller ikke fat i mit mail validering
Avatar billede tjanum Nybegynder
31. maj 2006 - 11:23 #9
Det er naturligvis fordi, du har en fejl i din javascript, at fejlen forsvinder, når du fjerner brugen af scriptet. Din fejl er i linie 16: formular.submit()

Jeg må indrømme, at jeg ikke rigtig forstår, hvor det ikke virker - normalt kan man godt submitte på den måde på et form-object. Det betyder dog ikke noget for dig, for du behøver den slet ikke. Hvis du returnerer false ved hvis der ikke kan valideres og true hvis informationen valideres, vil det virke fint (føler jeg mig overbevist om - jeg har ikke testet det:-))
Avatar billede krk Nybegynder
31. maj 2006 - 11:36 #10
Jeg forstår ikke helt hvad du mener. Jeg er ingen haj til JavaScript, koden har jeg snuppet et andet sted fra.
Mit js ser sådan ud:

// JavaScript Document
function checkkontakt(formular){
if (formular.nyhed_navn.value == "") {
  alert('Husk at oplyse dit navn.');
  formular.nyhed_navn.focus();
  return false;
} else if (formular.nyhed_tlf.value.length == "") {
  alert('Husk at oplyse dit mobil nr.');
  formular.nyhed_tlf.focus();
  return false;
} else if (formular.nyhed_email.value.length == "") {
  alert('Husk at oplyse din e-mail adresse.');
  formular.nyhed_email.focus();
  return false;
} else if (formular.nyhed_email.value.search(/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,3}$/) == -1) {
  alert('Ugyldig e-mail adresse.\n');
  formular.nyhed_email.focus();
  return false;
}  else {
  formular.submit();
  return true;
}
}
Avatar billede krk Nybegynder
31. maj 2006 - 11:38 #11
og min formular ser sådan ud:

<?php
    print"
    <form  method='post' action='../content/nyhedsbrev_database.php' onSubmit='return checkkontakt(this)' enctype='multipart/form-data'>
      <table width='250'  border='0' class='mail'>
          <tr>
            <td>&nbsp;</td>
            <td width='80'>Navn</td>
            <td width='170'><input type='text' name='nyhed_navn'></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td width='80'>Mobil nr.</td>
            <td width='170'><input type='text' name='nyhed_tlf'></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td>E-mail</td>
            <td><input type='text' name='nyhed_email'></td>
        </tr>
        <tr>
            <td>&nbsp;</td>
            <td valign='top' colspan='2'><input type='submit' name='submit' value='Tilmeld'>
            </td>
        </tr>
      </table>
    </form>";
    ?>
Avatar billede tjanum Nybegynder
31. maj 2006 - 12:49 #12
Fjern:

formular.submit();

...fra javascriptet i .js-filen. Så tror jeg, at det virker uden problemer. Af en eller anden grund (sikkert/måske fordi det ligger i en ekstern fil) vil den ikke benytte den property, der hedder submit på form-objektet. Min pointe er, at du sandsynligvis slet ikke behøver den.

Prøv det :-)
Avatar billede krk Nybegynder
31. maj 2006 - 13:00 #13
Jep, nu virker det.
Tak for det, du henter bare point
Avatar billede tjanum Nybegynder
31. maj 2006 - 13:55 #14
Mægtigt :-)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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