29. marts 2000 - 22:10Der er
9 kommentarer og 1 løsning
2 udsagn hvor bare et skal være sand for at funktionen er sand.
Hvordan bruger man tegnene || og && på den rigtige måde, f.eks har jeg 2 felter i en Form et af dem er et bruger navn på 4 tal og det andet er et telefon nr på 8-12 tal, jeg skal lave det på en sådan måde at hvis bare enten Bruger navn er udfyldt rigtigt skal man kunne sende formen og selvfølgelig også omvendt hvis telefon nr er rigtigt udfyldt skal den også sende formen hvordan gør jeg ???
Så vidt jeg ved er der ikke den store forskel på de to skrivemåder bortset fra "bindingen" af mangel på bedre ord... på samme måde som * kommer før +, kommer den ene af disse før den anden - kan bar eikek huske hvilken der kommer først :)
Ja jeg har fået lavet det så det virker når begge felter er korrekt udfyldt men det skal fungere sådan at hvis bare ÉN af de to felter skal være rigtigt udfyldt og SKAL opfylde de krav jeg har lavet i scriptet! jeg paster min source kode her så kan du teste den og se hvordan du ville lave det hvis du har et forslag :o)
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <title>Bestilling af bøger</title> <SCRIPT LANGUAGE=JAVASCRIPT> <!-- Skjuler scriptet for ældre browsere
function erTal(afgivetVaerdi) { if (afgivetVaerdi == "") { return false } for (i=0; i<afgivetVaerdi.length; i++) { if (afgivetVaerdi.charAt(i) < "0") { return false } if (afgivetVaerdi.charAt(i) > "9") { return false } } return true }
function gyldigBoghnr(etBoghnr) {
if (etBoghnr == "") { return true }
if (erTal(etBoghnr)) { return true } return false } // Indtast telefon nr. function gyldigTlfnr(etTlfnr) {
if (etTlfnr == "") { return true }
if (erTal(etTlfnr)) { return true } return false }
function afsendelse(form) {
if (form.Boghnr.value == "") { alert("Skriv dit bruger nr i feltet \"Boghnr\"."); form.Boghnr.focus(); return (false); }
if (form.Boghnr.value.length < 4) { alert("Skriv mindst 4 tal i feltet \"Boghnr\"."); form.Boghnr.focus(); return (false); }
if (form.Boghnr.value.length > 4) { alert("Skriv højst 4 tal i feltet \"Boghnr\"."); form.Boghnr.focus(); return (false); }
if (form.Boghnr.value == "") { alert("Du skal enten indtaste et brugernavn på 4 cifre") form.Boghnr.focus() return false }
if (!gyldigBoghnr(form.Boghnr.value)) { alert("Bruger nr. er ugyldigt") form.Boghnr.focus() form.Boghnr.select() return false } if (form.Tlfnr.value == "") { alert("Skriv dit telefon nr i feltet \"Tlfnr\"."); form.Tlfnr.focus(); return (false); }
if (form.Tlfnr.value.length < 8) { alert("Skriv mindst 8 tal i feltet \"Tlfnr\"."); form.Tlfnr.focus(); return (false); }
if (form.Tlfnr.value.length > 12) { alert("Skriv højst 12 tal i feltet \"Tlfnr\"."); form.Tlfnr.focus(); return (false); }
if (form.Tlfnr.value == "") { alert("Du skal indtaste et telefon nummer på 8-12 cifre") form.Tlfnr.focus() return false }
if (!gyldigTlfnr(form.Tlfnr.value)) { alert("Telefon nr. er ugyldigt") form.Tlfnr.focus() form.Tlfnr.select() return false }
}
// Slut på kommentar, der skjuler scriptet for ældre browsere --> </SCRIPT></head>
<blockquote> <div align="center"><center><table border="3" width="85%"> <tr> <td align="center" width="100%"><p align="center"><font color="#000000" size="3"><em><strong>Ved at indtaste antal ud for bogens titel, kan De her bestille bøger direkte. Husk forneden at indtaste Deres boghandlernr./telefonnummer og at trykke på knappen "Send" nederst på siden, når De har indtastet Deres samlede ordre. <br> <br> Vil De vide mere om vores priser og rabatter, beder vi Dem klikke på "Priser"herover.</strong></em></font></td> </tr> </table> </center></div><p align="center"> </p> </blockquote>
jeg gad ikke til at læse din sourcecode igennem ( har lige skrevet en LANG og kedelig dansk stil )
Men umiddelbart er dette fremgangsmåden :
Lav to funktioner, der hver tjekker om et af felterne er udfyldt korrekt, og opfylder evt. krav, disse funktioner skal returnere en bool ( eller integer ) værdi. Altså true/false eller 0/1
if (Brugernavnisudfyldtandkorrekt || Telefonnrisudfyldtandkorrrekt) { // Formularen må submittes........... }
Den eneste måde at slippe for at læse dette spørgsmål igen, igen og igen er åbenbart at svare på det. Læg mærke til den PÆNE STRUKTUR i stedet for det ROD der var. Hvem mon har lavet den kode .... ?
<SCRIPT LANGUAGE=JAVASCRIPT> <!-- Skjuler scriptet for ældre browsere
function erTal(afgivetVaerdi) { if (afgivetVaerdi == "") { return false; } for (i=0; i<afgivetVaerdi.length; i++) { if (afgivetVaerdi.charAt(i) < "0") { return false; } if (afgivetVaerdi.charAt(i) > "9") { return false; } } return true; }
function gyldigBoghnr(etBoghnr) { if (etBoghnr == "") { return true; } if (!erTal(etBoghnr)) { alert("Brugernr er ugyldigt"); return false; } if (etBoghnr.length < 4) { alert("Skriv mindst 4 tal i feltet \"Boghnr\"."); return false; } if (etBoghnr.length > 4) { alert("Skriv højst 4 tal i feltet \"Boghnr\"."); return false; } return true; }
function gyldigTlfnr(etTlfnr) { if (etTlfnr == "") { return true; } if (!erTal(etTlfnr)) { alert("Telefonnr. er ugyldigt"); return false; } if (etTlfnr.length < 8) { alert("Skriv mindst 8 tal i feltet \"Tlfnr\"."); return false; } if (etTlfnr.length > 12) { alert("Skriv højst 12 tal i feltet \"Tlfnr\"."); return false; } return true; }
function afsendelse(form) {
if (form.Boghnr.value=="" && form.Tlfnr.value=="") { alert("Skriv dit bruger nr og/eller telefonnummer"); form.Boghnr.focus(); return false; }
if (form.Boghnr.value!="" && !gyldigBoghnr(form.Boghnr.value)) { form.Boghnr.focus(); form.Boghnr.select(); return false; }
if (form.Tlfnr.value!="" && !gyldigTlfnr(form.Tlfnr.value)) { form.Tlfnr.focus(); form.Tlfnr.select(); return false; }
return true; } // Slut på kommentar, der skjuler scriptet for ældre browsere --> </SCRIPT>
I princippet rigtigt, ultik, men Casper (?) vil også have pæne fejlmeddelelser og hoppe til de felter, hvor fejlene opstår, og det komplicerer sagerne en smule.
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.