okay - det ser lidt advanceret ud, men det virker umiddelbart for mig: <script type="text/javascript"> function validate(frm) { var valid = false; var antal_udfyldte = 0; for (i=1;i<=4;i++) { frmelm = frm.elements["vare"+i+"udfyldt"]; if (frmelm.value == "true") { antal_udfyldte++; if (frm.elements["vare"+i+"nr"].value.match(/\S/) && frm.elements["vare"+i+"kolli"].value.match(/\S/) && frm.elements["vare"+i+"varenavn"].value.match(/\S/) && frm.elements["vare"+i+"ialt"].value.match(/\S/)) { valid = true; } else {alert("Du skal udfylde alle felterne i vare nr. "+i); }
} else if (frmelm.value == "false") {valid = false;;} else; } if (antal_udfyldte == 0) {valid = false;alert("Du skal udfylde mindst ét felt");} return valid; } function initForm(frm) { for (i=0;i<frm.length;i++) { if (frm.elements[i].type == "text") { frm.elements[i].onchange = function(e) { elm = (window.event) ? event.srcElement : e.target; hiddenelm = document.forms[0].elements[elm.name.substring(0,5)+"udfyldt"]; if (elm.value != '' && elm.value.match(/\S/)) { hiddenelm.value = "true" } else { hiddenelm.value = "false"; } } } } } </script>
<body onload="initForm(document.forms[0])">
Det kræver dog at du har et ekstra felt der hedder vare+nr+udfyldt, så din form ser nogenlunde sådan her ud: VARE NR 1: <input type="hidden" name="vare1udfyldt" /> <input type="text" name="vare1nr" /> <input type="text" name="vare1kolli" /> <input type="text" name="vare1varenavn" /> <input type="text" name="vare1ialt" /> <br /> VARENR 2: <input type="hidden" name="vare2udfyldt" /> <input type="text" name="vare2nr" /> <input type="text" name="vare2kolli" />
Synes godt om
Slettet bruger
09. juni 2004 - 08:54#4
hvordan kører jeg funktionen?
OnSubmit="Validate()"
i form koden???
Synes godt om
Slettet bruger
09. juni 2004 - 08:57#5
KOden skal i øvrigt også validere nogle andre felter:
kan de to koder smeltes sammen??
<script type="text/javascript">
function validering() { error = 0; if((document.forms[0].navn.value=='') && (error==0)) { alert('Tekstfeltet navn skal udfyldes!'); document.forms[0].navn.focus(); error = 1; } if((document.forms[0].adresse.value=='') && (error==0)) { alert('Tekstfeltet adresse skal udfyldes!'); document.forms[0].adresse.focus(); error = 1; } if((document.forms[0].postnr.value=='') && (error==0)) { alert('Tekstfeltet postnr skal udfyldes!'); document.forms[0].postnr.focus(); error = 1; } if((document.forms[0].city.value=='') && (error==0)) { alert('Tekstfeltet by skal udfyldes!'); document.forms[0].city.focus(); error = 1; } if((document.forms[0].leveringsadresse.value=='') && (error==0)) { alert('Tekstfeltet leveringsadresse skal udfyldes!'); document.forms[0].leveringsadresse.focus(); error = 1; } if((document.forms[0].telefon.value=='') && (error==0)) { alert('Tekstfeltet telefon skal udfyldes!'); document.forms[0].telefon.focus(); error = 1; } if((document.forms[0].mobil.value=='') && (error==0)) { alert('Tekstfeltet mobil skal udfyldes!'); document.forms[0].mobil.focus(); error = 1; } if((document.forms[0].leveringsdato.value=='') && (error==0)) { alert('Tekstfeltet leveringsdato skal udfyldes!'); document.forms[0].leveringsdato.focus(); error = 1; }
og jo de kan vel godt smeltes hurtigt sammen: function validate(frm) { var valid = false; var antal_udfyldte = 0; for (i=1;i<=4;i++) { frmelm = frm.elements["vare"+i+"udfyldt"]; if (frmelm.value == "true") { antal_udfyldte++; if (frm.elements["vare"+i+"nr"].value.match(/\S/) && frm.elements["vare"+i+"kolli"].value.match(/\S/) && frm.elements["vare"+i+"varenavn"].value.match(/\S/) && frm.elements["vare"+i+"ialt"].value.match(/\S/)) { valid = true; } else {alert("Du skal udfylde alle felterne i vare nr. "+i); }
} else if (frmelm.value == "false") {valid = false;;} else; } if (antal_udfyldte == 0) {valid = false;alert("Du skal udfylde mindst ét felt");} error = 0; if((document.forms[0].navn.value=='') && (error==0)) { alert('Tekstfeltet navn skal udfyldes!'); document.forms[0].navn.focus(); error = 1; } if((document.forms[0].adresse.value=='') && (error==0)) { alert('Tekstfeltet adresse skal udfyldes!'); document.forms[0].adresse.focus(); error = 1; } if((document.forms[0].postnr.value=='') && (error==0)) { alert('Tekstfeltet postnr skal udfyldes!'); document.forms[0].postnr.focus(); error = 1; } if((document.forms[0].city.value=='') && (error==0)) { alert('Tekstfeltet by skal udfyldes!'); document.forms[0].city.focus(); error = 1; } if((document.forms[0].leveringsadresse.value=='') && (error==0)) { alert('Tekstfeltet leveringsadresse skal udfyldes!'); document.forms[0].leveringsadresse.focus(); error = 1; } if((document.forms[0].telefon.value=='') && (error==0)) { alert('Tekstfeltet telefon skal udfyldes!'); document.forms[0].telefon.focus(); error = 1; } if((document.forms[0].mobil.value=='') && (error==0)) { alert('Tekstfeltet mobil skal udfyldes!'); document.forms[0].mobil.focus(); error = 1; } if((document.forms[0].leveringsdato.value=='') && (error==0)) { alert('Tekstfeltet leveringsdato skal udfyldes!'); document.forms[0].leveringsdato.focus(); error = 1; }
næ, det virker ikke lige - så du kan bare erstatte det med det her (hvilket også er en bedre løsning): function validate(frm) { var valid = false; var antal_udfyldte = 0; for (i=1;i<=4;i++) { frmelm = frm.elements["vare"+i+"udfyldt"]; if (frmelm.value == "true") { antal_udfyldte++; if (frm.elements["vare"+i+"nr"].value.match(/\S/) && frm.elements["vare"+i+"kolli"].value.match(/\S/) && frm.elements["vare"+i+"varenavn"].value.match(/\S/) && frm.elements["vare"+i+"ialt"].value.match(/\S/)) { valid = true; } else {alert("Du skal udfylde alle felterne i vare nr. "+i); }
} else if (frmelm.value == "false") {valid = false;;} else; } if (antal_udfyldte == 0) {valid = false;alert("Du skal udfylde mindst ét felt");} if((document.forms[0].navn.value=='') && valid) { alert('Tekstfeltet navn skal udfyldes!'); document.forms[0].navn.focus(); } if((document.forms[0].adresse.value=='') && valid) { alert('Tekstfeltet adresse skal udfyldes!'); document.forms[0].adresse.focus(); } if((document.forms[0].postnr.value=='') && valid) { alert('Tekstfeltet postnr skal udfyldes!'); document.forms[0].postnr.focus(); } if((document.forms[0].city.value=='') && valid) { alert('Tekstfeltet by skal udfyldes!'); document.forms[0].city.focus(); } if((document.forms[0].leveringsadresse.value=='') && valid) { alert('Tekstfeltet leveringsadresse skal udfyldes!'); document.forms[0].leveringsadresse.focus(); } if((document.forms[0].telefon.value=='') && valid) { alert('Tekstfeltet telefon skal udfyldes!'); document.forms[0].telefon.focus(); } if((document.forms[0].mobil.value=='') && valid) { alert('Tekstfeltet mobil skal udfyldes!'); document.forms[0].mobil.focus(); } if((document.forms[0].leveringsdato.value=='') && valid) { alert('Tekstfeltet leveringsdato skal udfyldes!'); document.forms[0].leveringsdato.focus(); } return valid }
Synes godt om
Ny brugerNybegynder
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.