Avatar billede twg Nybegynder
03. juli 2003 - 14:01 Der er 16 kommentarer og
1 løsning

Validering hvis ?

Hej
Jeg har 4 tekst felter: Start,Slut,Nu og Imorgen
og så har jeg en Checkbox som hedder Altid

Jeg vil gerne have et script der kun validere Start og Slut hvis der ikke er kryds i altid. Nu og Imorgen SKAL valideres ligemeget om der er kryds eller ej.
Avatar billede hoejrup Nybegynder
03. juli 2003 - 14:24 #1
Hvordan skal vi kunne løse det når vi ikke kender navnet på din form og navnene på dine felter?

<form name = "........"

/per
Avatar billede twg Nybegynder
03. juli 2003 - 14:30 #2
Det har jeg da skrevet De hedder Start,Slut,Nu og Imorgen. og Checkboxen hedder Altid. Det skal være formnavn uafhængigt noget med Document.forms[0] et eller andet.
Avatar billede hoejrup Nybegynder
03. juli 2003 - 14:30 #3
function checkdata() {
        if ( document.formnavn.Altid.checked == true) {
            if  ( document.formnavn.Start.value == "") {
                  alert("Du har ikke indtastet dit Start.");
                  document.formnavn.Start.focus();
              }
            if  ( document.formnavn.Slut.value == "") {
                  alert("Du har ikke indtastet dit Slut.");
                  document.formnavn.Slut.focus();
            }
      }
}

/per
Avatar billede mm12010 Nybegynder
03. juli 2003 - 14:30 #4
<script language="JavaScript" type="text/javascript">
<!--
function check(frm){
    if(frm.Altid.checked==true){
        txt1=frm.Start.value;
        txt2=frm.Slut.value;
        if((txt1=="")||txt2==""){
            return false;
            }
        }
    txt3=frm.Nu.value;
    txt4=frm.Imorgen.value;
    if((txt3=="")||txt4==""){
        return false;
        }
    return true;
    }
//-->
</script>



<form name="form" onSubmit="return check(this)">
Avatar billede twg Nybegynder
03. juli 2003 - 14:39 #5
Forresten, den skal også komme med en lille Alert"feltet XXX skal udfyldes"
og så noget focus(); på den første man mangler at udfylde.
Avatar billede mm12010 Nybegynder
03. juli 2003 - 14:44 #6
function check(frm){
    if(frm.Altid.checked==true){
        if(frm.Start.value==""){
            alert("Hvis 'Altid' er valgt skal \nbåde 'Start' og 'Slut' udfyldes");
            frm.Start.focus();
            return false;
            }
        if(frm.Slut.value==""){
            alert("Hvis 'Altid' er valgt skal \nbåde 'Start' og 'Slut' udfyldes");
            frm.Slut.focus();
            return false;
            }
        }
    if(frm.Nu.value==""){
        alert("Hvis 'Nu' skal udfyldes");
        frm.Nu.focus();
        return false;
        }
    if(frm.Imorgen.value==""){
        alert("Hvis 'Imorgen' skal udfyldes");
        frm.Imorgen.focus();
        return false;
        }
    return true;
    }
Avatar billede twg Nybegynder
03. juli 2003 - 14:47 #7
Det ser fint nok ud, du har bare ikke læst hvad jeg skrev:
Jeg vil gerne have et script der kun validere Start og Slut *HVIS DER IKKE* er kryds i altid. Nu og Imorgen SKAL valideres ligemeget om der er kryds eller ej.
Avatar billede mm12010 Nybegynder
03. juli 2003 - 14:48 #8
if(frm.Altid.checked==false){
Avatar billede hoejrup Nybegynder
03. juli 2003 - 14:53 #9
Ok!

function checkdata() {
        if ( document.formnavn.Altid.checked == false) {
            if  ( document.formnavn.Start.value == "") {
                  alert("Du har ikke indtastet dit Start.");
                  document.formnavn.Start.focus();
              }
            if  ( document.formnavn.Slut.value == "") {
                  alert("Du har ikke indtastet dit Slut.");
                  document.formnavn.Slut.focus();
            }
      }
}

/per
Avatar billede =maddog= Nybegynder
03. juli 2003 - 14:55 #10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html><head>
    <title>Untitled</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script>
    function validate(elem) {
        if  (elem.i_morgen.value=="") {
            alert("I morgen skal udfyldes");
            elem.i_morgen.focus();
            return false;
        }
        if  (!elem.altid.checked) {
            if  (elem.start.value=="") {
                alert("Start skal udfyldes");
                elem.start.focus();
                return false;
            }
            if  (elem.slut.value=="") {
                alert("Start skal udfyldes");
                elem.slut.focus();
                return false;
            }
        }
        return true;
    }
    </script>
</head>

<body>
<form onsubmit="return validate(this);">
<label>Start</label>
<input type="text" name="start" /><br />
<label>Slut</label>
<input type="text" name="slut" /><br />
<label>I morgen</label>
<input type="text" name="i_morgen" /><br />
<label>Altid</label>
<input type="checkbox" name="altid" /><br />
<input type="submit" value="Send" />
</form>
</body>
</html>
Avatar billede twg Nybegynder
03. juli 2003 - 14:57 #11
Det virker ikke, den hopper videre ligemeget hvad man gør.
Avatar billede mm12010 Nybegynder
03. juli 2003 - 15:02 #12
<html>
<head>
<title>form check</title>
<script language="JavaScript" type="text/javascript">
<!--
function check(frm){
    if(frm.Altid.checked==false){
        if(frm.Start.value==""){
            alert("Hvis ikke 'Altid' er valgt skal \nbåde 'Start' og 'Slut' udfyldes");
            frm.Start.focus();
            return false;
            }
        if(frm.Slut.value==""){
            alert("Hvis ikke 'Altid' er valgt skal \nbåde 'Start' og 'Slut' udfyldes");
            frm.Slut.focus();
            return false;
            }
        }
    if(frm.Nu.value==""){
        alert("'Nu' skal udfyldes");
        frm.Nu.focus();
        return false;
        }
    if(frm.Imorgen.value==""){
        alert("'Imorgen' skal udfyldes");
        frm.Imorgen.focus();
        return false;
        }
    return true;
    }
//-->
</script>
</head>
<body>
<form name="form" method="post" action="test.htm" onSubmit="return check(this)">
  <br>Start
  <input name="Start" type="text" id="Start">
  <br>Slut
  <input name="Slut" type="text" id="Slut">
  <br>Nu
  <input name="Nu" type="text" id="Nu">
  <br>Imorgen
  <input name="Imorgen" type="text" id="Imorgen">
  <br>Altid
  <input name="Altid" type="checkbox" id="Altid" value="checkbox">
  <br>
  <input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>
Avatar billede twg Nybegynder
03. juli 2003 - 15:09 #13
Fik lige dette i inboxen, og det virker:

<script language="JavaScript1.2">
function validate()
{
theForm=document.forms[0]
    if(theForm.Altid.checked==false){
    if( theForm.start.value.length == 0 ) {
    alert( 'Du skal vælge en start dato' )
    return false
    }
    if( theForm.slut.value.length == 0 ) {
    alert( 'Du skal vælge en arkiverings dato' )
    return false
    }
}
    if( theForm.Imorgen.value.length == 0 ) {
    alert( 'Du skal angive Imorgen' )
    theForm.Navn.focus();
    return false
  }
  //  theForm.submit()
  return true
}
function validateAndSubmit() {
  doSubmit = validate()
  if( doSubmit ) {
//    document.forms[0].submit()
    return true
  }
  return false
}

</script>
onSubmit=return validateAndSubmit()
Avatar billede twg Nybegynder
03. juli 2003 - 15:11 #14
okay hvad skete der, der. Ville have giver jeg nogle point for at forsøge, men på en eller anden måde blev svaret afvist. øhh weird.
Avatar billede hoejrup Nybegynder
03. juli 2003 - 15:28 #15
twg> Du gav mig alle dine point.

Hvor mange point skal de andre have, for så opretter jeg et spørgsmål med dem. :-)

/per
Avatar billede hoejrup Nybegynder
03. juli 2003 - 15:40 #16
Her kan I få jeres point: http://www.eksperten.dk/spm/372200

/per
Avatar billede hoejrup Nybegynder
03. juli 2003 - 16:22 #17
twg> Det er en ærlig sag at lave en fejl, kan du ikke lige skrive hvor mange point de skal have.
Og hvem der skal have point.

/per
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