Avatar billede frifoed Nybegynder
09. september 2001 - 20:05 Der er 20 kommentarer og
3 løsninger

Test af to udtryk med IF

Hello!
Vi prøver lige en gang til :)
Jeg vil godt teste om de 2 felter ikke er blevet udfyldt.
if (document.form1.firstn.value == \"\" && document.form1.lastn.value == \"\")
    {
    alert(\"You havent select nor filled in an author\");
    return false;
    }
Håber i kan hjælpe.
Avatar billede netsrac Praktikant
09. september 2001 - 20:08 #1
if (document.form1.firstn.value == \"\" || document.form1.lastn.value == \"\")
    {
    alert(\"You havent select nor filled in an author\");
    return false;
    }
Avatar billede roenving Novice
09. september 2001 - 20:10 #2
Du vil vel have den til at reagere, både ved een fejl og ved begge fejl:

if (document.form1.firstn.value == \"\"){
    alert(\"Select an author\");
    document.form1.firstn.focus();
    return false;
}
if (document.form1.lastn.value == \"\"){
    alert(\"Fill in the author-field\");
    document.form1.lastn.focus();
    return false;
}

hth
jes
Avatar billede roenving Novice
09. september 2001 - 20:22 #3
Eller er din fejl måske, at du har en default select-værdi i den ene, så du skal teste for om fritekst-indtastningsfeltet er tomt eller om select-inputtet er default, altså:

if (document.form1.firstn.value == \"Vælg forfatter\" && document.form1.lastn.value == \"\")
    {
    alert(\"You haven\'t selected nor filled in an author\");
    return false;
    }

jes
Avatar billede frifoed Nybegynder
09. september 2001 - 20:28 #4
egentlig ser den sådan ud:

if (document.form1.firstn.value == \"\" && document.form1.lastn.value == \"\")
    {
    if (document.form1.author_id.value == \"\")
    {
    alert(\"You havent select nor filled in an author\");
    setfocus(\'firstn\');
    return false;
    }
   
    }

Hvis der ikke er indtastet noget i input felterne så skal den tjekke om der er valgt noget i select boxen. author_id er en selectbox, firstn og lastn er inputboxe. Beklager fejlen :) Setfocus er en funktion der ser sådan ud:

function setfocus(field)
{
document.form1.elements[field].focus();
}

måske er det lidt mere forståeligt nu?
Avatar billede roenving Novice
09. september 2001 - 20:36 #5
Og din fejl er ??

Hvis du skal teste en select, skal du undersøge om hver option er checked:

    for (i=0;i<document.form1.author_id.length;i++){
      if (document.form1.author_id[i].checked)return true;
    }
    alert(\"You haven\'t selected nor filled in an author\");
    document.form1.firstn.focus();
    return false;

hth
jes
Avatar billede olebole Juniormester
09. september 2001 - 23:05 #6
<ole>
Hvis bare der skal testes for, at den første option ikke er valgt, kan man skrive dette, der afvikler en del hurtigere:

var f = document.form1;
if (f.firstn.value == \"\" && f.lastn.value == \"\" && f.author_id.selectedIndex != 0) {
    alert(\"You havent select nor filled in an author\");
    f.firstn.focus();
    return false;
}

/mvh
</bole>
Avatar billede olebole Juniormester
09. september 2001 - 23:06 #7
Damned...!

var f = document.form1;
if (f.firstn.value == \"\" && f.lastn.value == \"\" && f.author_id.selectedIndex == 0) {
    alert(\"You havent select nor filled in an author\");
    f.firstn.focus();
    return false;
}

...selvfølgelig  :)
Avatar billede roenving Novice
09. september 2001 - 23:06 #8
>>ole
Du\'r\'da lidt sent ude i dag
Avatar billede roenving Novice
09. september 2001 - 23:08 #9
Og jeg er i hvert fald 2 sekunder bagud =;·]
Avatar billede olebole Juniormester
09. september 2001 - 23:14 #10
Hvis fornavn og efternavn er udfyldt, skal den vel returnere true - og hvis de ikke er udfyldt, skal den vel checke din dropdown og se, om forfatteren er valgt der...ikk\'? I så fald ville jeg nok skrive:

var f = document.form1;
if (f.firstn.value != \"\" && f.lastn.value != \"\") {
    return true;
}
else {
    if (f.author_id.selectedIndex == 0)  {
      alert(\"You havent select nor filled in an author\");
      f.firstn.focus();
      return false;
    }
    else {
      return true;
    }
}

/mvh
Avatar billede roenving Novice
09. september 2001 - 23:28 #11
Møeh ...
>>ole

Helt i orden, at du korrekser os, men hva\' fa\'n har du gang i her ??

Mindst:

function checkEtEllerAndet(){
var f = document.form1;
if (f.firstn.value != \"\" && f.lastn.value != \"\") {
    return true;
}
else {
    for (i=0;i<document.form1.author_id.length;i++){
      if (document.form1.author_id[i].checked)return true;
    }
      alert(\"You havent select nor filled in an author\");
      f.firstn.focus();
      return false;
   
}
Avatar billede olebole Juniormester
09. september 2001 - 23:34 #12
Se, hvad jeg skriver i 09/09 2001 23:05:22 :)
*Det* har jeg gang i...der står sikkert noget à la:

<select name=\"author_id\">
  <option value=\"\">Vælg en forfatter</option>
  <option value=\"H.C. Andersen\">H.C. Andersen</option>
  <option value=\"Jes Rønving\">Jes Rønving</option>
</select>

...comprende...?
Avatar billede roenving Novice
09. september 2001 - 23:40 #13
Nåeh ... ja ...

jeg brugte den jo også som udgangspunkt for et af mine svar

-- men jeg misbrugte zq ikke H. C. Andersen
Avatar billede olebole Juniormester
09. september 2001 - 23:47 #14
Njahhhh...bortset fra \'firstn\' er et text-input - men det kunne du ikke rigtig vide på det tidspunkt.

Undskyld....jeg skal aldrig anbringe gamle H.C. i en select sammen med dig. Jeg indrømmer...det var *uhørt*!  =oD
Avatar billede olebole Juniormester
09. september 2001 - 23:48 #15
...og hvis \'firstn\' havde været en select, ville
  document.form1.firstn.value == \"Vælg forfatter\"
ikke rigtig virke heller...vel?  :)
Avatar billede roenving Novice
09. september 2001 - 23:58 #16
Nej !!!

og jeg mener da, at det er i orden at anbringe H. C. Andersen i samme box som mig, godt nok er han på nogle punkter lidt forældet, men det kan vi vist sige os helt udenom allesammen.

*GG*
Avatar billede olebole Juniormester
09. september 2001 - 23:59 #17
*LooOooOooL*  =oD
Avatar billede roenving Novice
10. september 2001 - 00:01 #18
Endnu en af de der aftener på Eksperten *gnæk gnæk*
Avatar billede jakoba Nybegynder
10. september 2001 - 00:56 #19
Så vil jeg da også lige blande mig:

if (  document.form1.firstn.value.length == 0 &&
      document.form1.lastn.value.length == 0 )  {
    if (document.form1.author_id.selectedIndex < 0) {
        alert(\"You havent select nor filled in an author\");
        setfocus(\'firstn\');
        return false;
    }
}

mvh JakobA
Avatar billede olebole Juniormester
10. september 2001 - 02:07 #20
jakoba >> den gav jeg vist den rigtige version af her: 09/09 2001 23:06:47  :)
Hvornår er \'selectedIndex == -1\' ?
Som du skriver de to if-sætninger, kan du ligeså godt have tre betingelser i én sætning.
/mvh
Avatar billede jakoba Nybegynder
10. september 2001 - 07:57 #21
Jeg troede:
\'selectedIndex < 0\' (og vist altid == -1) ved \'fødslen\' medmindre den er initieret med en  select  sttribut i en af <option kommandoerne.

men en hurtig test viste at default starttilstanden er:
    selectedIndex = 0;
    options[0].selected = true;

Du har vel ikke en hat jeg kan låne?

mvh JakobA
Avatar billede safl Nybegynder
10. januar 2002 - 00:07 #22
hmmm ingen svar :)
Avatar billede frifoed Nybegynder
10. januar 2002 - 00:09 #23
hmmm mange svar :)
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