Avatar billede weiland Nybegynder
04. september 2003 - 11:00 Der er 5 kommentarer og
1 løsning

Mindst en checkboks skal være valgt

Når man opretter en adresse i en formular, skal mindst een checkboks være valgt. Jeg har følgende funktion, som nok er noget i retning af det rigtige, men som gør nøjagtig det modsatte! :-)
Hvordan skal funktionen ændres, så den opfylder formålet?

function AdresseCheck() {

var strTitle=document.MyForm.AdressTitle.value;
var strName=document.MyForm.AdressName.value;

var strErrorMsg=''


if (strName=='') {
  strErrorMsg+='      * Navn \n'
}
  if (strTitle=='') {
  strErrorMsg+='      * Titel \n'
}
for(i=0; i<document.MyForm.AdressCategoryID.length; i++){
        if(document.MyForm.AdressCategoryID[i].checked){
            strErrorMsg+='      * Vælg kategori \n';
            }
        }
 
if (strErrorMsg!='') {
  strErrorMsg ='Følgende felter er ikke udfyldt korrekt:\n\n' + strErrorMsg
  alert (strErrorMsg);
  return false;
}
else {
  return true;
}
}
Avatar billede weiland Nybegynder
04. september 2003 - 16:43 #1
Nu er jeg kommet så langt, at jeg har to funktioner.
1) tjekker for navn og titel
2) tjekker, at kategori er valgt

hvordan samler jeg dem i een funktion?

function AdresseCheck() {

var strTitle=document.MyForm.AdressTitle.value;
var strName=document.MyForm.AdressName.value;

var strErrorMsg=''


if (strName=='') {
  strErrorMsg+='      * Navn \n'
}
  if (strTitle=='') {
  strErrorMsg+='      * Titel \n'
}


if (strErrorMsg!='') {
  strErrorMsg ='Følgende felter er ikke udfyldt korrekt:\n\n' + strErrorMsg
  alert (strErrorMsg);
  return false;
}
else {
  return true;
}
}

function CheckCategory(){
  for (x=0; x < document.MyForm.elements.length; x++){
    if (document.MyForm.elements[x].name=='AdressCategoryID'){
      if (document.MyForm.elements[x].checked){
        return true;
      }
    }
  }
  alert("Adressen skal tilhøre mindst én kategori.");
  return false;
}
Avatar billede roenving Novice
05. september 2003 - 04:56 #2
function AdresseCheck() {
var strTitle=document.MyForm.AdressTitle.value;
var strName=document.MyForm.AdressName.value;
var strErrorMsg=''
if (strName=='') {
  strErrorMsg+='      * Navn \n'
}
  if (strTitle=='') {
  strErrorMsg+='      * Titel \n'
}
if (strErrorMsg!='') {
  strErrorMsg ='Følgende felter er ikke udfyldt korrekt:\n\n' + strErrorMsg
  alert (strErrorMsg);
  return false;
}
else {
  if(CheckCategory())return true;
}
}
Avatar billede weiland Nybegynder
05. september 2003 - 08:26 #3
Din løsning klarer sagen...
Så det er umuligt at samle dem i een funktion, så alerten "Adressen skal tilhøre mindst én kategori." kommer i alert-boks sammen med de andre fejlmeddelelser????
Det ville jo være den mest optimale løsning....
Avatar billede roenving Novice
06. september 2003 - 04:33 #4
function AdresseCheck() {
var strTitle=document.MyForm.AdressTitle.value;
var strName=document.MyForm.AdressName.value;
var strErrorMsg=''
if (strName=='') {
  strErrorMsg+='      * Navn \n'
}
  if (strTitle=='') {
  strErrorMsg+='      * Titel \n'
}
if(!CheckCategory())strErrorMsg+="Adressen skal tilhøre mindst én kategori.";
if (strErrorMsg!='') {
  strErrorMsg ='Følgende felter er ikke udfyldt korrekt:\n\n' + strErrorMsg
  alert (strErrorMsg);
  return false;
}
}

hth
jes '-)
Avatar billede weiland Nybegynder
06. september 2003 - 09:21 #5
smukt!
hth? hmmmm - lad mig gætte... hot to handle?
Avatar billede roenving Novice
13. september 2003 - 00:46 #6
*g*

hope this helps !-)

-- og tak for points ;~}
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