Avatar billede Slettet bruger
01. juni 2001 - 13:22 Der er 7 kommentarer og
2 løsninger

2 scripts der skal skrives sammen...

Hejsa!

Nu har jeg snart rodet med det her i 2 dage, det vil bare ikke virke!

Jeg har 2 scripts.

1. script:

<SCRIPT LANGUAGE=\"JavaScript\">
function checkPw(form) {
pw1 = form1.password1.value;
pw2 = form1.password2.value;

if (pw1 != pw2) {
alert (\"\\nDu skal indtaste det samme password i begge felterne.\")
this.form1.password1.focus();
return false;
}
else return true;
}
</script>


2. script:

<SCRIPT LANGUAGE=\"JavaScript\">
function testResults (form)
  {var NewVar = isValidIsbn (form.inputbox.value);}

function isValidIsbn (InString)  {
  if(InString.length==0)
      {alert (\"Hmmm... You didn\'t enter anything. I suppose that\'s valid.\");
      return (false);}
  var RefString=\"1234567890- Xx\";
  var NewString=\"\"
  var holder = 0
  for (Count=0; Count < InString.length; Count++)  {
      TempChar= InString.substring (Count, Count+1);
      if (RefString.indexOf (TempChar, 0)==-1)
        {alert (\"NO! Real ISBNs contain only numerals, dashes and Xs!\");
        return (false);}
      if ((Count < 9) && (TempChar==\"X\"))
        {alert (\"NO! X should only appear in final position\");
        return (false);}
      if ((Count < 9) && (TempChar==\"x\"))
        {alert (\"NO! x should only appear in final position\");
        return (false);}
      if ((RefString.indexOf (TempChar, 0)==10) ||
        (RefString.indexOf (TempChar, 0)==11))
        NewString=NewString;
      else (NewString=NewString+TempChar);
      }
      if (NewString.length!=10)
    {alert (\"NO! Real ISBNs have ten digits!\");
        return (false);}
      if (NewString.length==10)
    var StartNum=10
    var CheckNum = 0
    for (Count=0; Count < NewString.length; Count++)
    {
    TempChar= NewString.substring (Count, Count+1);
        if ((TempChar==\"X\")||(TempChar==\"x\"))
        TempChar=10;
        holder = holder+(TempChar*StartNum);
        StartNum=StartNum-1;
    }
    CheckNum = holder%11;
    if (CheckNum==0)
        alert (\"YES! That appears to be a valid ISBN\");
    else alert (\"NO! That\'s NOT a valid ISBN\")
        return (true);
}
</SCRIPT>

Men jeg kan ikke finde ud af at koble dem sammen.

M&aring;let er at smide det 2. script ind i det f&oslash;rste, således at den først tjekker ISBN, og derefter om passwords matcher hinanden.

Jeg har ikke rettet i koden, og de virker fint hver for sig. Nu starter vi p&aring; en frisk! ok?

Der skal komme en alert hvis passwords ikke matcher, eller hvis ISBN nummeret ikke er gyldigt.

Der skal selvf. kun komme en alert hvis begge kontroller fejler. Denne alert skal være at ISBN nummeret ikke er gyldigt.

Hjælp mig!
Avatar billede nute Nybegynder
01. juni 2001 - 13:52 #1
kan du ikke bare skrive om det første script til:

<SCRIPT LANGUAGE=\"JavaScript\">
function checkPw(form) {
pw1 = form1.password1.value;
pw2 = form1.password2.value;

if (pw1 != pw2) {
alert (\"\\nDu skal indtaste det samme password i begge felterne.\")
this.form1.password1.focus();
return false;
}else {
  if( testResults(form) ){
    return true;
  } else {
    return false;
  }
}
</script>

/nute
Avatar billede Slettet bruger
01. juni 2001 - 13:59 #2
Der manglede lige en }

men nu virker chekket, men den submitter ikke formen selvom alt er udfyldt korrekt...

Således ser det ud:

<SCRIPT LANGUAGE=\"JavaScript\">
function testResults (form)
  {var NewVar = isValidIsbn (form1.isbn.value);}

function isValidIsbn (InString)  {
  if(InString.length==0)
      {alert (\"Hmmm... You didn\'t enter anything. I suppose that\'s valid.\");
      return (false);}
  var RefString=\"1234567890- Xx\";
  var NewString=\"\"
  var holder = 0
  for (Count=0; Count < InString.length; Count++)  {
      TempChar= InString.substring (Count, Count+1);
      if (RefString.indexOf (TempChar, 0)==-1)
        {alert (\"NO! Real ISBNs contain only numerals, dashes and Xs!\");
        return (false);}
      if ((Count < 9) && (TempChar==\"X\"))
        {alert (\"NO! X should only appear in final position\");
        return (false);}
      if ((Count < 9) && (TempChar==\"x\"))
        {alert (\"NO! x should only appear in final position\");
        return (false);}
      if ((RefString.indexOf (TempChar, 0)==10) ||
        (RefString.indexOf (TempChar, 0)==11))
        NewString=NewString;
      else (NewString=NewString+TempChar);
      }
      if (NewString.length!=10)
    {alert (\"NO! Real ISBNs have ten digits!\");
        return (false);}
      if (NewString.length==10)
    var StartNum=10
    var CheckNum = 0
    for (Count=0; Count < NewString.length; Count++)
    {
    TempChar= NewString.substring (Count, Count+1);
        if ((TempChar==\"X\")||(TempChar==\"x\"))
        TempChar=10;
        holder = holder+(TempChar*StartNum);
        StartNum=StartNum-1;
    }
    CheckNum = holder%11;
    if (CheckNum==0)
        return (true);
}
</SCRIPT>

<SCRIPT LANGUAGE=\"JavaScript\">
function checkPw(form) {
pw1 = form1.password1.value;
pw2 = form1.password2.value;

if (pw1 != pw2) {
alert (\"\\nDu skal indtaste det samme password i begge felterne.\")
this.form1.password1.focus();
return false;
}else {
  if( testResults(form) ){
    return true;
  } else {
    return false;
  }
}
}
</script>
Avatar billede nute Nybegynder
01. juni 2001 - 14:02 #3
så kan du kanskje gjøre sånn:

<SCRIPT LANGUAGE=\"JavaScript\">
function checkPw(form) {
pw1 = form1.password1.value;
pw2 = form1.password2.value;

if (pw1 != pw2) {
alert (\"\\nDu skal indtaste det samme password i begge felterne.\")
this.form1.password1.focus();
return false;
}else {
  if( testResults(form) ){
    form.submit(); // HER SUMITTES FORMEN
  } else {
    return false;
  }
}
}
</script>
Avatar billede Slettet bruger
01. juni 2001 - 14:07 #4
Det dutter ikke nute, for jeg har noget mere validering længere nede...et eksternt javascript der kaldes med onsubmit...

Vil du have hele koden postet?

Hvis ikke så kig på http://www.datefinder.dk/studiestarter.dk/opret_annonce_bog.php
Avatar billede nute Nybegynder
01. juni 2001 - 14:11 #5
hvorfor utfører du ikke *all* validering samtidig. Du skaper bare en hel masse ekstra problemer for deg selv.

Alternativt legger du all validering i onSubmit:

<form onSubmit=\"return if(checkPw(form){denAndreValidering(form)}else{return false;}\">

/nute
Avatar billede Slettet bruger
01. juni 2001 - 14:42 #6
Kan ikke få det sidste til at virke...hmmm...
Avatar billede Slettet bruger
01. juni 2001 - 14:47 #7
Hvad er der galt i <form name=\"form1\" onSubmit=\"return if(checkPw(form){testResults(this)}else{return false;}\" method=\"post\" action=\"opret_annonce_bog.php\">
Avatar billede nute Nybegynder
01. juni 2001 - 16:27 #8
prøv denne:

<form name=\"form1\" onSubmit=\"return if(checkPw(this.form)){testResults(this.form);}else{return false;}\" method=\"post\" action=\"opret_annonce_bog.php\">
/nute
Avatar billede Slettet bruger
04. juni 2001 - 11:04 #9
Beklager nute, jeg lavede det hele om...Nu har jeg kun 1 valideringsscript.

Men du får lige lidt for din indsats.
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