Avatar billede cgs Nybegynder
20. marts 2002 - 17:25 Der er 1 kommentar

tilretning af form

Hej.
Er der nogen der kan forklare mig, hvordan man retter sin form til med hensyn til felter der SKAL udfyldes og dem der ikke skal?
Jeg har en form hvor man kan vælge at modtage noget via mail eller sms. Og så er det jo at der er to felter. Et til tlf.nummer og et til mail. Men det er jo kun det ene felt der absolut SKAL udfyldes alt efter om man har valgt det ene eller det andet...
Jeg kan fint sætte dem begge til at være et must, men vil gerne ha´ det til at være kun det ene...jeg arbejder i Dreamweaver....
Fik I den?
Avatar billede esben85 Nybegynder
01. februar 2007 - 14:09 #1
jeg har et forslag:

<form id="form1" method="post" action="">
  <p>
    <label>Navn
      <input id="name" type="text" name="name" />
    </label>
  </p>
  <p>
    <label>Adresse
    <input id="address" type="text" name="address" />
    </label>
  </p>
  <p>
    <label>Kontaktes via
    <select id="contactby" name="contactby">
      <option value="sms" selected="selected">sms</option>
      <option value="mail">mail</option>
    </select>
    </label>
</p>
  <p>
    <label>Telefonnr
    <input id="phone" type="text" name="phone" />
    </label>
  </p>
  <p>
    <label>Email
    <input id="email" type="text" name="email" />
    </label>
  </p>
  <p>
    <label>
    <input type="button" name="Submit" value="Submit" onclick="validateFormAndSubmit();"/>
    </label>
  </p>
</form>
<script type="text/javascript">
function validateFormAndSubmit(){
    //dette er det trivielle!
    var errorMessage = "Invalid data!"; //tilpas din egen fejlmeddelelse
    var requiredFields = new Array("name","address"); //indsæt selv flere
    for(var i=0;i<requiredFields.length;i++){           
        if(document.getElementById(requiredFields[i]).value == ""){
            document.getElementById(requiredFields[i]).value == errorMessage;
            document.getElementById(requiredFields[i]).focus();
            return;
        }
    }
    //nu kommer det sjove
    var contactby = document.getElementById("contactby");
    if(contactby.options[contactby.selectedIndex].value == "sms" && !validPhoneNumber(document.getElementById("phone").value)){
        document.getElementById("phone").value = errorMessage;
        document.getElementById("phone").focus();
        return;
    }
    else if(contactby.options[contactby.selectedIndex].value == "mail" && !validEmailAddress(document.getElementById("email").value)){
        document.getElementById("email").value = errorMessage;
        document.getElementById("email").focus();
        return;
    }
    //Alt er ok, hvis vi kommer hertil.
    //send formularen afsted...
    document.getElementById("form1").submit();
}

function validPhoneNumber(phoneNumber){
    var minDigits = 8;
    return (!isNaN(phoneNumber) && phoneNumber && phoneNumber.indexOf(".") == -1 && phoneNumber != 0 && phoneNumber >= minDigits);
}
function validEmailAddress(email){
    return email.match(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/);
}
</script>
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
Kurser inden for grundlæggende programmering

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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel