Avatar billede rudi1234 Nybegynder
31. januar 2004 - 09:26 Der er 4 kommentarer og
2 løsninger

document.forms.formname.submit

Jeg vil gerne have funtkionen validate til at modtage navnet på den form der skal valideres og evt. submittes. Det virker bare ikke i nedenstående kode.
Hvordan fører man formnavnet ind i funtkionen og bruger det i kommandoen "document.forms.formname.submit"?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
<script language="JavaScript"><!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isDate (thedate) {
// checks if date passed is valid
// will accept dates in following format:
// isDate(dd,mm,ccyy), or
// isDate(dd,mm) - which defaults to the current year, or
// isDate(dd) - which defaults to the current month and year.
// Note, if passed the month must be between 1 and 12, and the
// year in ccyy format.
   
    thedate = String(thedate);
    day = parseInt(thedate.substring(0,2));
    month = parseInt(thedate.substring(3,5));
    year = parseInt(thedate.substring(6,10));
   
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( (y2k(test.getYear()) == year) &&
        (month == test.getMonth()) &&
        (day == test.getDate()) ) {
        return true;
    }else{
        return false
    }
}

function validate(formname,fieldname,thedate) {
    var formname ;
    var fieldname ;
    if (isDate(thedate)) {
        document.forms.formname.submit;
    } else {
        alert('Nope '+day+" "+month+" "+year);
        document.formname.fieldname.focus();
    }
}

//--></script>
</head>

<body>
<form name="dateform" onsubmit="validate('dateform','date',document.dateform.date.value);return false;">
<input type="text" value="12-12-2002" name="date" maxlength="10">
<input type="submit" name="submit" value="Gem">
</form>



</body>
</html>
Avatar billede littlewiz Nybegynder
31. januar 2004 - 10:01 #1
du skal skrive document.forms.formname.submit();
Avatar billede littlewiz Nybegynder
31. januar 2004 - 10:06 #2
eller rettere document.forms.dataform.submit();
Avatar billede ulrikp Nybegynder
31. januar 2004 - 10:27 #3
Det er nemmere at sende en reference til hele formen med til javascriptet, sådan:

<form ... onsubmit='return validate(this);'>

Scriptet:
function validate(f) {
if(isDate(f.date.value)) {
  f.submit();
  return true;
} else {
  alert('Nope '+day+" "+month+" "+year);
  f.date.focus();
  return false;
}
}
Avatar billede ulrikp Nybegynder
31. januar 2004 - 10:28 #4
Der er m.a.o. ingen grund til, at du BÅDE sender formens navn, dato-feltets navn OG værdien af dato-feltet med. Det er redundans, der vil noget (-:
Avatar billede roenving Novice
31. januar 2004 - 16:43 #5
-- og to submitter ?-)

function validate(f) {
if(isDate(f.date.value)) {
  return true;
} else {
  alert('Nope '+day+" "+month+" "+year);
  f.date.focus();
  return false;
}
}
Avatar billede ulrikp Nybegynder
01. februar 2004 - 12:40 #6
nåh, ja (-:
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