Avatar billede kr-data Nybegynder
18. juni 2004 - 14:44 Der er 13 kommentarer og
1 løsning

Kontrol af syntaks (i en form) og sætte en hidden til værdi

Hej eksperter

Har lavet det af scriptet jeg kunne finde ud af i det store hele. Der må dog være en syntaksfejl et sted, for jeg syns ikke det lader til at virke det jeg har lavet. Men det jeg gerne vil have er, at scriptet chekker om syntaksen er overholdt, og så enabler submit-knappen i så fald. Ud over det, vil jeg også have den del med, hvor den skriver værdien af feltet time (bare for at kontrollere at det virker. Php-siden af scriptet har jeg styr på, så det er kun den her del!!!

Scriptet som det ser ud er her, og hvis der er noget I ikke lige forstår eller lign, så giv lyd.


<script language="javascript">
function timeSet() {
    document.form.time.value = document.form.time.value + " " + document.form.time.value;
    document.write = document.form.time.value;
}
</script>


<br><br>
<center>
<table width="70%">
<form action="<?= $_SERVER["PHP_SELF"]; ?>" method="post" name="form">

<input type="hidden" name="time">

<tr>
<td width="40%">Dato (DD/MM/YY, f.eks. 5. Juli 2004 = 05/07/04)</td>
<td width="60%"><input type="text" name="date" value="DD/MM/YY" onchange="timeSet()"></td>
</tr>

<tr>
<td width="40%">Tidspunkt (HH:MM f.eks. 21:30)</td>
<td width="60%"><input type="text" name="clock" value="HH:MM" onchange="timeSet()"></td>
</tr>

<tr>
<td colspan="2"><center><input type="submit" disabled="true"></center></td>
</tr>

</form>
</table>
Avatar billede skovenborg Nybegynder
18. juni 2004 - 14:58 #1
prøv:
function timeSet(elm) {
      d = elm.form.date.value.match(/^\d{2}\/\d{2}\/\d{2}$/);
      c = elm.form.clock.value.match(/^\d{2}:\d{2}$/);
      if (elm.name == "date" && !d) {
            alert("Du skal skrive en korrekt dato");
            elm.form.submit.disabled = true;
            elm.focus();
            return;
      }
      if (elm.name == "clock" && !c) {
            alert("Du skal skrive et korrekt klokkeslæt");
            elm.form.submit.disabled = true;
            elm.focus();
            return;
      }
      else if (d && c) {elm.form.submit.disabled = false;elm.form.time.value = elm.form.date.value + " " + elm.form.clock.value;}
}

Hvor din form ser sådan ud:
<form action="<?= $_SERVER["PHP_SELF"]; ?>" method="post" name="form">
<table width="70%">


<input type="hidden" name="time">

<tr>
<td width="40%">Dato (DD/MM/YY, f.eks. 5. Juli 2004 = 05/07/04)</td>
<td width="60%"><input type="text" name="date" value="DD/MM/YY" onchange="timeSet(this)"></td>
</tr>

<tr>
<td width="40%">Tidspunkt (HH:MM f.eks. 21:30)</td>
<td width="60%"><input type="text" name="clock" value="HH:MM" onchange="timeSet(this)"></td>
</tr>

<tr>
<td colspan="2"><center><input type="submit" name="submit" disabled="true"></center></td>
</tr>


</table>
</form>
Avatar billede kr-data Nybegynder
18. juni 2004 - 15:04 #2
du mener det der <?= $_SERVER["PHP_SELF"]; ?> ???? Det er et php-script der gør, at siden sender til sig selv, for den del der modtager dataene er i samme fil!
Avatar billede kr-data Nybegynder
18. juni 2004 - 15:14 #3
Det virkede ikke det script :( andre forslag. På nuværende tidspunkt sker der ikke noget!
Avatar billede skovenborg Nybegynder
18. juni 2004 - 15:30 #4
det virker fint her - skal dog siges at begge felter skal være udfyldt for at scriptet enabler submit-knappen.

Har du evt. et link hvor du forsøger med scriptet?
Avatar billede kr-data Nybegynder
18. juni 2004 - 15:31 #5
nej men det vil jeg lige prøve efter
Avatar billede skovenborg Nybegynder
18. juni 2004 - 15:39 #6
ellers kan du prøve at se på det her link, hvor det virker (efter min bedømmelse):
http://skovenborg.1go.dk/exp/511253.php
Avatar billede kr-data Nybegynder
18. juni 2004 - 15:43 #7
Hmmm, har prøvet efter I 3 browsere nu, og det virker ikke :( den side der er linket til kan den ikke finde :S
Avatar billede kr-data Nybegynder
18. juni 2004 - 15:44 #8
Så kom jeg ind på siden prøver lige efter der
Avatar billede kr-data Nybegynder
18. juni 2004 - 15:46 #9
Skal scriptet ligge i head eller er det fordi du flytter form ud før tabellen, at det virker???
Avatar billede skovenborg Nybegynder
18. juni 2004 - 15:56 #10
jeg flytter den kun ud fordi det andet ikke er en "lovlig" måde at gøre det på. Om det skulle give de store forskelle på scriptet ved jeg ikke, men det er i hvert fald den rigtige måde at gøre det på.
Avatar billede kr-data Nybegynder
18. juni 2004 - 16:04 #11
Nu fik jeg det til at virke, havde ikke lige set, at du havde ændret i min form ud over hvor tagsne står :S men smid et svar, så får du dine pts.
Avatar billede skovenborg Nybegynder
18. juni 2004 - 16:24 #12
okay - så det gjorde en forskel. Jamen, godt det virkede :-)
Avatar billede kr-data Nybegynder
18. juni 2004 - 16:26 #13
Jepper. Tak for hjælpen
Avatar billede skovenborg Nybegynder
18. juni 2004 - 16:28 #14
og tak for points :-)
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