Avatar billede Gimhle Novice
05. marts 2013 - 21:16 Der er 8 kommentarer

Min stopfunktion virker ikke længere

Jeg har fået det problem med java-scriptet på min formularside at ikke længere virker men sender formularen videre selv om den burde forhindre dette, når formularen ikke er blevet udfyldt.

Vil en eller anden se på det for mig ?

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="da">

<script type=text/javascript>

function validate(theForm)

{

  var dag  = document.getElementById('dag');

  var dato  = document.getElementById('dato');

  var mdr  = document.getElementById('mdr');

  var aaret = document.getElementById('aaret');



  if (dag.selectedIndex < 1 )

  {

    alert("Du skal vælge en ugedag ");

    dag.focus();

    return (false);

  }



  if (dato.selectedIndex < 1)

  {

    alert("Du skal vælge en dag i måneden");

    dato.focus();

    return (false);

  }



  if (mdr.selectedIndex < 1)

  {

    alert("Du skal vælge en måned");

    mdr.focus();

    return (false);

  }



  if (aaret.selectedIndex < 1)

  {

    alert("Du skal vælge et årstal");

    aaret.focus();

    return (false);

  }



var ugedagvalgt = dag.selectedIndex % 7 ;

// alert('ugedag valgt' + ugedagvalgt );

var manedvalgt = mdr.selectedIndex ;

// alert('maned valgt' + manedvalgt );

var aaretvalgt = aaret.selectedIndex + <?php echo date("Y")-1; ?>;

// alert('Året valgt' + aaretvalgt );

var datovalgt = dato.selectedIndex ;

// alert('Dato valgt' + datovalgt );



var mydate = new Date();

  mydate.setFullYear(aaretvalgt,manedvalgt-1,datovalgt);

  var ugedag=mydate.getDay();



var today = new Date();

var keeptoday = new Date();

  if ( today.getHours() > 6 ) {

    today.setHours(23);

    today.setMinutes(59);

  } else {

    today.setHours(today.getHours() + 8 );

  }



if ( mydate.getFullYear() != aaretvalgt || mydate.getMonth()+1 != manedvalgt

|| mydate.getDate() != datovalgt ) {

  alert ('Datoen findes ikke i kalenderen \r\nMåned eller dag passer ikke sammen');

  dato.focus();

  return false;

}



if ( mydate < today ) {

  alert ('Vælg en dato længere ud i fremtiden!');

  dato.focus();

  return false;

}



if ( ugedagvalgt != ugedag ) {

  alert ('Ugedag passer ikke til datoen');

  dag.focus();

  return false;

}

var spilletid = document.getElementById('spilletid');
if (spilletid.selectedIndex < 1 )
  {
    alert("Hvilket spilletidspunkt?");
    spilletid.focus();
    return (false);
  }

var lovligetider = new Array (-1,600,630,700,730,800,830,900,930,1000,-1,1200,1230,1300,1330,1400,1430,1500,-1,1700,1730,1800,1830,1900,1930,2000);

var tid = lovligetider [spilletid.selectedIndex] ;
  mydate.setHours((tid - tid % 100)/100);
  mydate.setMinutes(tid % 100);

if (((mydate.getTime() - keeptoday.getTime())/ 86400000 ) < 1 ) {
  alert('Bestilling via formularen er ikke mulig så tæt på spilletidspunktet. \r\nRing tlf. 26 46 46 90 og lav en aftale vedrørende morgenmusik!');

  return false;
}

if ( mydate <= today ) {
  alert ('Vælg et klokkeslet længere ud i fremtiden!' );
  dato.focus();
  return false;
}

  return (true);

}

</script>

<style type="text/css">
.style1 {
                font-family: Arial;
}
</style>

</head>

<div align="center">
    <table cellpadding="0" cellspacing="0" height="400" width="760">
    <!-- MSTableType="layout" -->
    <tbody><tr>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" height="400" valign="top" width="760">
<div id="side">
<table id="table1" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" bgcolor="#FFFFFF" width="760" class="style4">
  <tbody><tr>
        <td valign="top">

<form method="post" action="o1.php" name="formular" onsubmit="return validate(this);">
<input type="hidden" name="recipient" value="xxxxxx@xxxxx.xx">
<input type="hidden" name="subject" value="Forespørgelse">
<input type="hidden" name="redirect" value="svar.html">

  <div align="center">
    <center>

  <table border="0" cellspacing="0" cellpadding="0" style="border-collapse: collapse; width: 601px;" bordercolor="#111111">
    <tr>
        <td width="306" valign="top">
        <p align="left">

      <font face="Arial" size="2">&nbsp;</font><font size="2"><span class="style1"><strong>Hvilken dag/dato</strong></span></font><b><font size="2"><br>
      </font></b></font-size:>
  <font color="#0000FF">

      <font-size: 60px><b><font size="2">

    <select size="1" name="Dag" id="dag" tabindex="3" onChange="skrivdato();">
    <option>_______</option>
    <option value="Mandag">Mandag</option>
    <option value="Tirsdag">Tirsdag</option>
    <option value="Onsdag">Onsdag</option>
    <option value="Torsdag">Torsdag</option>
    <option value="Fredag">Fredag</option>
    <option value="Lørdag">Lørdag</option>
    <option value="Søndag">Søndag</option>
    </select><select size="1" name="Dat" id="dato" tabindex="4" onChange="skrivdato();">
    <option>__</option>
    <option value="1.">1.</option>
    <option value="2.">2.</option>
    <option value="3.">3.</option>
    <option value="4.">4.</option>
    <option value="5.">5.</option>
    <option value="6.">6.</option>
    <option value="7.">7.</option>
    <option value="8.">8.</option>
    <option value="9.">9.</option>
    <option value="10.">10.</option>
    <option value="11.">11.</option>
    <option value="12.">12.</option>
    <option value="13.">13.</option>
    <option value="14.">14.</option>
    <option value="15.">15.</option>
    <option value="16.">16.</option>
    <option value="17.">17.</option>
    <option value="18.">18.</option>
    <option value="19.">19.</option>
    <option value="20.">20.</option>
    <option value="21.">21.</option>
    <option value="22.">22.</option>
    <option value="23.">23.</option>
    <option value="24.">24.</option>
    <option value="25.">25.</option>
    <option value="26.">26.</option>
    <option value="27.">27.</option>
    <option value="28.">28.</option>
    <option value="29.">29.</option>
    <option value="30.">30.</option>
    <option value="31.">31.</option>
    </select><select size="1" name="Mdr" id="mdr" tabindex="5" onChange="skrivdato();">
    <option>_________</option>
    <option value="Januar">Januar</option>
    <option value="Februar">Februar</option>
    <option value="Marts">Marts</option>
    <option value="April">April</option>
    <option value="Maj">Maj</option>
    <option value="Juni">Juni</option>
    <option value="Juli">Juli</option>
    <option value="August">August</option>
    <option value="September">September</option>
    <option value="Oktober">Oktober</option>
    <option value="November">November</option>
    <option value="December">December</option>
        </select><select size="1" id="aaret" name="Aar" tabindex="6" onchange="skrivdato();">
    <option value="0">____</option>
</select>
<script type="text/javascript">
var sel = document.getElementById("aaret"),
frag = document.createDocumentFragment(),
year = new Date().getFullYear(), elm, val;
for (i=0; i<=2; i++) {
    elm = document.createElement("option");
    val = year+i;
    elm.setAttribute("value", val);
    elm.appendChild(document.createTextNode(val))
    frag.appendChild(elm)
}
sel.appendChild(frag);
</script>
<script type="text/javascript">
  dag = document.getElementById("dag");
  dato = document.getElementById("dato");
  mdr = document.getElementById("mdr");
  aaret = document.getElementById("aaret");
  subject = document.getElementById("subject");
function skrivdato(){
  subject.value='Forespørgsel vedr. ' + dag.value + ' ' + dato.value + ' ' + mdr.value + ' ' + aaret.value;
}
</script>
    </font></b></font><font face="Arial" size="2"><br>
        </font>
        <font-size: 60px>
        <font-size: 60px><span class="style17">&nbsp;</span><font face="Times New Roman" color="#0000FF"><br>
        &nbsp;</font><font-size: 60px><font-size: 60px><font-size: 60px><font-size: 60px><font-size: 60px><font-size: 60px><font-size: 60px><font face="Arial" size="2"><span class="style10"><strong>Spilletidspunkt</strong></span></font><font-size: 60px><font-size: 60px><font-size: 60px><span class="style16"><strong></font></strong></span><font-size: 60px>
      <select size="1" name="klokken" id="spilletid" tabindex="7">

      <option>______________________________</option>
      <option value="5.30">Kl. 5.30</option>
      <option value="5.45">Kl. 5.45</option>
      <option value="6.00">Kl. 6.00</option>
      <option value="6.15">Kl. 6.15</option>
      <option value="6.30">Kl. 6.30</option>
      <option value="6.45">Kl. 6.45</option>
      <option value="7.00">Kl. 7.00</option>
      <option value="7.15">Kl. 7.15</option>
      <option value="7.30">Kl. 7.30</option>
      <option value="7.45">Kl. 7.45</option>
      <option value="8.00">Kl. 8.00</option>
      <option value="8.15">Kl. 8.15</option>
      <option value="8.30">Kl. 8.30</option>
      <option value="8.45">Kl. 8.45</option>
      <option value="9.00">Kl. 9.00</option>
      <option value="9.30">Kl. 9.30</option>
      <option value="10.00">Kl. 10.00</option>
      <option value="10.30">Kl. 10.30</option>
      <option value="11.00">Kl. 11.00</option>
      <option value="11.30">Kl. 11.30</option>
      <option value="12.00">Kl. 12.00</option>
      <option value="12.30">Kl. 12.30</option>
      <option value="13.00">Kl. 13.00</option>
      <option value="13.30">Kl. 13.30</option>
      <option value="14.00">Kl. 14.00</option>
      <option value="14.30">Kl. 14.30</option>
      <option value="15.00">Kl. 15.00</option>
      <option value="15.30">Kl. 15.30</option>
      <option value="16.00">Kl. 16.00</option>
      <option value="16.30">Kl. 16.30</option>
      <option value="17.00">Kl. 17.00</option>
      <option value="17.30">Kl. 17.30</option>
      <option value="18.00">Kl. 18.00</option>
      <option value="18.30">Kl. 18.30</option>
      <option value="19.00">Kl. 19.00</option>
      <option value="19.30">Kl. 19.30</option>
      <option value="20.00">Kl. 20.00</option></select></font><option 60px></td>       
  </b>
      </tr>
  </table>
    </font></center>
</div>


    <font size="4">
    <font size="4" style="font-size: 60px" &gt><div align="center">


    <table border="0" style="border-collapse: collapse; width: 599px;" bordercolor="#111111" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top">


            <p align="center">

    <font size="4">


<font-size: 60px>


    <font face="Arial" size="5"><a name="Send"></a></font>

<input type="submit" value="Send" tabindex="20"></font>
Avatar billede olsensweb.dk Ekspert
05. marts 2013 - 21:33 #1
har du prøvet at se hvad dit udviklings værktøj i din browser siger ??
den add-on der hedder FireBug til FireFox er u-unværlig IMHO

typist er det pga en js fej at scriptet springer valideringen over.
kunne være du referarer til et element der ikke findes i dit DOM træ,
måske aaret i denne linje
var sel = document.getElementById("aaret"),

kun et gæt ikke tested, men det var det script du fil lavet i sidste spm

ellers kom med et link, så vi ikke skal paste hele coden ind
Avatar billede olebole Juniormester
05. marts 2013 - 21:35 #2
<ole>

Jeg ved ikke, om det er en antikvarisk FrontPage, du bruger, men koden fortjener ikke at ramme nettet. Du bør skrive den om helt fra bunden i tidsvarende, valid HTML - og hold den langt væk fra den editor, du har brugt  =)

/mvh
</bole>
Avatar billede olsensweb.dk Ekspert
05. marts 2013 - 22:02 #3
<script type=text/javascript>
mangler ""
<script type="text/javascript">

man bruger ikke tabel til design mere, stopped i ca år 2000

<center> forældet, og fjernet i HTML5 brug CSS istedet
<font .. forældet brug CSS istedet

du vil med fordel kører din code igennem http://validator.w3.org/

så ja som ole skriver en ordelig "make over" er at anbefale


>year = new Date().getFullYear(), elm, val;
en lille kommentar til den code ole lavede til dig i sidste spm, jeg ville aldrig stole på brugeres dato instillinger.
Avatar billede Gimhle Novice
06. marts 2013 - 01:06 #4
Hej ronols!

Jeg tror jeg har fundet fejlen hvorfor valideringen udebliver.
Jeg fandt noget mere php-script:
var aaretvalgt = aaret.selectedIndex + <?php echo date("Y")-1; ?>;

Skal php-scriptet slettes eller omformes til java-script, da det gerne skulle spille sammen med nedenstående java-script:

<select size="1" id="aaret" name="Aar" tabindex="6" onchange="skrivdato();">
    <option value="0">____</option>
</select>
<script type="text/javascript">
var sel = document.getElementById("aaret"),
frag = document.createDocumentFragment(),
year = new Date().getFullYear(), elm, val;
for (i=0; i<=2; i++) {
    elm = document.createElement("option");
    val = year+i;
    elm.setAttribute("value", val);
    elm.appendChild(document.createTextNode(val))
    frag.appendChild(elm)
}
sel.appendChild(frag);
</script>
Avatar billede Gimhle Novice
06. marts 2013 - 01:38 #5
Hej igen!

Jeg sender lige hele php-elementerne, så det kan give bedre mening hvordan de indvirker på hinanden:

var aaretvalgt = aaret.selectedIndex + <?php echo date("Y")-1; ?>;

og dette:

<?php
print '<select size="1" id="aaret" name="Aar" tabindex="6" onchange="skrivdato();" >'; 
print '<option value = "0">____</option>';
$year = date("Y");                       
for($i=0;$i<=2;$i++){       
    $tmp = $year+$i;
    print '<option value = "'.$tmp.'">'.$tmp.'</option>';
}
print '</select>';                           
?>

Ovenstående skal gerne stadig fungere, nu bare i JavaScript-udgave
Avatar billede olebole Juniormester
06. marts 2013 - 02:00 #6
Du burde allerførst få styr på den kode, scriptet skal virke i. Med al respekt, så er det intet mindre end en teknisk triumf, hvis en browser er i stand til at vise den  =)
Avatar billede Gimhle Novice
06. marts 2013 - 02:33 #7
Hej OleBole!

Jeg kan ikke skrive det fra bunden af, som du foreslår.

Jeg er begynder m.h.t. at lave min hjemmeside og har fået hjælp udefra til java og php-scripts.

Har ganske rigtigt tidligere brugt FrontPage og bruger nu SharePoint Designer, fordi jeg ikke kan kode selv.

Jeg håber at du/I alligevel vil hjælpe mig med ovenstående problem. På forhånd. Tak!
Jeg håber at der også er plads til ubehjælpsomme begyndere i dette forum, som ikke selv kan kode ned i maskinrummet, ellers må jeg desværre erkende at jeg er kørt fast.
Avatar billede olebole Juniormester
06. marts 2013 - 14:59 #8
Jamen så begynder du bare med et tomt dokument i SharePoint Designer og bygger siden op igen. Det kan ikke betale sig at rode med den kode, du har - det får du kun problemer og ærgelser ud af.

Jeg ved godt, det ikke er det, du gerne vil høre, men det ville være tarveligt ikke at fortælle dig sandheden  =)
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