Avatar billede vagn16 Nybegynder
16. august 2000 - 12:59 Der er 9 kommentarer og
1 løsning

sammensæt to scripts (nemt)

Hej !

Jeg har to scripts som jeg har fundet, det ene (øverste) bruges til at tjekke en radiobutton, det andet (nederste) tjekker nogle felter fra formen.

Hver for sig virker de fint, men:

Jeg kan sgu ikke lige finde ud af at sætte den sammen til et script ?

Kan en af jer ?

Vh

vagn / 16

-----------------------------

<script language=\"JavaScript\">function validateForm(form)
{
{
  for (i=0; i<form.sted.length; i++) {
    if (form.sted[i].checked) {
      return true;
    }
  }
  alert(\"Udfyld venligst Sted inden du sender!\");
  return false;
}

  if ( (form.navn.value == \"\") ||
      (form.efternavn.value == \"\") ||
      (form.tlf.value == \"\") ||
      (form.email.value == \"\") ||
      (form.firma.value == \"\") ||
      (!deptChecked(form)) ) {
    alert(\"Udfyld venligst Sted, Navn, Efternavn, Tlf., e-mail og Firmanavn inden du sender.\");
    return false;
  } else {
    return true;
  }
}
</script>

På forhånd tak !
Avatar billede sjensen Nybegynder
16. august 2000 - 13:15 #1
Hvad med denne løsning:

<script language=\"JavaScript\">function validateForm(form)
{
{
  if ( (form.navn.value == \"\") ||
      (form.efternavn.value == \"\") ||
      (form.tlf.value == \"\") ||
      (form.email.value == \"\") ||
      (form.firma.value == \"\") ||
      (!deptChecked(form)) ) {
    alert(\"Udfyld venligst Sted, Navn, Efternavn, Tlf., e-mail og Firmanavn inden du sender.\");
    return false;
  } else {
  for (i=0; i<form.sted.length; i++) {
    if (form.sted[i].checked) {
      return true;
    }
  }
  alert(\"Udfyld venligst Sted inden du sender!\");
  return false;
}

</script>

NB! Det kan godt være at der mangler nogle \"tuborg\" klammer hist og her. Det er sgu ikke let at klippe og kliste i eksperten ;-)
Avatar billede vagn16 Nybegynder
16. august 2000 - 13:25 #2
Hej sjensen !

Jeg har måske ikke forklaret mig helt godt nok !

Der skal kun være en alert !

Således at den tjekker dem alle og derefter kommer med en samlet alert. Som du kan se er \"sted\" også med i den øverste !

Gider du at forsøge igen...

Det virkede iørigt ikke det du lavede !

vh

vagn / 16
Avatar billede sjensen Nybegynder
16. august 2000 - 13:38 #3
Ok, hvad så med at lade det være 2 separate scripts og så oprette et 3. der checker om de er ok ?

<script language=\"JavaScript\">function validateForm(form)
{
  for (i=0; i<form.sted.length; i++) {
    if (form.sted[i].checked) {
      return true;
    }
  }
  return false;
}

</script>

<script language=\"JavaScript\">function validateFields(form)
{
  if ( (form.navn.value == \"\") ||
      (form.efternavn.value == \"\") ||
      (form.tlf.value == \"\") ||
      (form.email.value == \"\") ||
      (form.firma.value == \"\") ||
      (!deptChecked(form)) ) {
    return false;
  } else {
    return true;
  }
}
</script>

<script language=\"JavaScript\">function validate(form)
{
if validateform(form) {
    if validatefields {
      return true;
    } else {
        alert(\"Udfyld venligst Sted, Navn, Efternavn, Tlf., e-mail og Firmanavn inden du sender.\");
        return false;
    }
} else {
    alert(\"Udfyld venligst Sted, Navn, Efternavn, Tlf., e-mail og Firmanavn inden du sender.\");
    return false;
}
}     
</script>
Avatar billede vagn16 Nybegynder
16. august 2000 - 13:56 #4
...det virker ikke !

Og jeg kan ikke engang give dig nogle pointers til hvilken retning du bør gå i, da jeg er på totalt bar bund javascript-mæssigt !

Desværre !

Jeg ved ikke om du gider at prøve igen...

vagn / 16
Avatar billede sjensen Nybegynder
16. august 2000 - 14:00 #5
Ja, jeg har lavet en fejl i den nye funktion. linien

  if validatefields {

skal selvfølgeligt være

  if validatefields(form) {

men ellers kan jeg ikke rigtigt se hvad der er galt. Jeg er heller ikke selv nogen haj til javascript, men der ligner jo al anden programmering så det burde være lige til at gå til.


Avatar billede vagn16 Nybegynder
16. august 2000 - 14:41 #6
Hej igen...

Efter dit: \"men der ligner jo al anden programmering så det burde være lige til at gå til.\"

Kiggede jeg på det, og: NÆSTEN !

Det virker sålang at det ikke giver en fejl !

Men hvis jeg markerer nr. 2 checkbox får jeg den rigtige alert, altså den der hører til \"sted\", men det er jo forkert. Vælger jeg derimofd checkbox nr. 1, fungerer det fint !

Her er scriptet:

<script language=\"JavaScript\">function validateForm(form) {
  for (i=0; i<form.sted.length; i++) {
    if (form.sted[i].checked) {
if (  (form.navn.value == \"\") ||
      (form.efternavn.value == \"\") ||
      (form.tlf.value == \"\") ||
      (form.email.value == \"\") ||
      (form.firma.value == \"\") ||
      (!deptChecked(form)) ) {
      alert(\"Udfyld venligst Navn, Efternavn, Tlf., e-mail og Firmanavn inden du sender.\");
    return false;
  } else {
    return true;
  }
}
  alert(\"Udfyld venligst Sted inden du sender.\");
  return false;
}
}
</script>

Har du nogen ideer ?

vagn / 16
Avatar billede sjensen Nybegynder
16. august 2000 - 15:17 #7
ja, det er et godt spørgsmål. Men hvis du kigger på dit eget forslag:

for (i=0; i<form.sted.length; i++) {
    if (form.sted[i].checked) {

er et loop der checker om sted[i] er sat (for det antal STED checkbokse der er sat, og hvis STED[1] er sat, checker den efterfølgende form.navn, form.efternavn o.s.v. Og hvis en af dem er tom kommer fejlen med navn, efternavn, tlf. o.s.v.

Hvis STED[2] også er sat, checkes form.navn o.s.v. igen.

Hvis STED[i] ikke er sat checkes form.navn o.s.v. slet ikke og fejlen med sted vises.

Så hvis du sætter STED[2] men ikke STED[1] for du fejlen med \"sted\" for STED[1] men ville få ok på STED[2].

Så konstruktionen er ikke rigtig. Jeg formoder at du kun har et felt til hhv. navn, efternavn o.s.v. og derefter en række checkbokse med STED. Og at brugeren skal udfylde navn, efternavn o.s.v. og derefter vælge et sted, og kun hvis han ingen sted vælger skal der komme en fejl (eller hvis ikke alle navne felter er udfyldt). Hvis jeg har ret i det, bør du starte med at checke på navn o.s.v. først og derefter undersøge om et STED er valgt.

D.v.s. i den retning mit første forslag var.

Jeg håber ikke at du er mere forvirret efter dette indlæg ;-)


Avatar billede vagn16 Nybegynder
16. august 2000 - 15:24 #8
Jeg prøver !

Og hvis jeg får det til at virke får du point !

Måske først imorgen, ok ?

vh

vagn / 16
Avatar billede olebole Juniormester
17. august 2000 - 02:09 #9
<ole>
Her er en, der fylder tekst i alert\'en alt efter, hvilke felter/boxe der ikke er udfyldt:

<html>
<head>
<script language=javascript>

var astr;
function check(which) {
    astr = \"Du mangler at udfylde :\\r\";
    if (which.navn.value == \"\") { astr += \"-\\t\\tnavn\\r\"; }
    if (which.efternavn.value == \"\") { astr += \"-\\t\\tefternavn\\r\"; }
    if (which.tlf.value == \"\") { astr += \"-\\t\\ttlf\\r\"; }
    if (which.email.value == \"\") { astr += \"-\\t\\temail\\r\"; }
    if (which.firma.value == \"\") { astr += \"-\\t\\tfirma\\r\"; }
}
function mySubmit(which) {
    check(which);
    radioTest = 0;
    for (j=0; j<which.sted.length; j++) {
        if (which.sted[j].checked == true) {
            radioTest++;
        }
    }
    if (radioTest == 0) { astr += \"-\\t\\tsted\\r\"; }
    if (astr.length > 24) { alert(astr);return false }
    else { which.submit(); }
}

</script>
</head>
<body>
<form name=f onsubmit=\"return mySubmit(this);\">
    navn:<br><input type=text name=navn><br>
    efternavn:<br><input type=text name=efternavn><br>
    telefon:<br><input type=text name=tlf><br>
    email:<br><input type=text name=email><br>
    firma:<br><input type=text name=firma><br><br>
    <input type=radio name=sted value=her> her<br>
    <input type=radio name=sted value=der> der<br>
    <input type=radio name=sted value=midt imellem> midt imellem<br><br>
    <input type=submit value=\" send \">
</form>
</body>
</html>

Husk at lave linien:
        if (astr.length > 24) { alert(astr);return false }
om, hvis du laver udgangsteksten for \'astr\' om - HUSK \'\\r\' (\'RETURN\') kun er ét tegn.
/Vh
</bole>
Avatar billede vagn16 Nybegynder
17. august 2000 - 10:34 #10
Tak for hjælpen begge to !

Især sjensen... du var hurtig og ihærdig, og vi kom da et stykke af vejen.

Men så kommer olebole buksetrold hoppende med et gennemført perfekt script...

Endnu engen tak...

Og lad os håbe at også andre kan bruge dette til noget !

vagn / 16
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