09. september 2001 - 20:05Der 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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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; }
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; }
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(); }
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;
<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; }
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; }
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; } }
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;
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.
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
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;
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.