JavaScript Âge de Validation à partir de la date de naissance de liste Déroulante de Sélection

J'ai vu beaucoup de l'Âge de Validation à partir de la date de naissance de codes mais aucun ne peut me semble pour se rendre au travail avec mon code.

En gros, je suis tenu de mon TAFE cours pour créer un formulaire avec Nom, Prénom, adresse e-Mail, numéro de téléphone, Date de Naissance et la Région d'Intérêt (qui est une liste déroulante avec les Enfants et les Adultes Livres).

Je suis dans l'obligation de valider la Date de Naissance comme étant dans le format correct. J'ai réussi à faire cela et il équivaut pour les mois de 30 jours et les Années Bissextiles ainsi.

La partie suivante nécessite de la Zone à liste Déroulante pour valider les soumettre que l'Âge de la Personne est de plus de 18 ans. MAIS. Seulement si la Zone D'Intérêt choisi est des Adultes Livres.

Maintenant, je pourrais faire quelque chose de simple et de faire en sorte tous les âges et au-dessus de 1996 sera rejetée, mais je préfère créer une validation qui fait cela à partir de la date de naissance qui a été entrée, je pense que c'est ce qui est à prévoir.

Le DOB est entrée dans la forme JJ/MM/AAAA.

C'est ce que j'ai à ce jour:

<script language="JavaScript" type="text/javascript">
function validateForm()
{
    *snipped firstname, surname, email validation*
    var dob = document.getElementById("dateofbirth").value;
    *snipped dob validation*
    var area = document.getElementById("areaofinterest").value;
    if (area == "")
    {
        alert("Please select an Area of Interest!");
        return false;
    }
    var now = new Date();
    var birthdate = dob.split("/");
    var born = new Date(dob[2], dob[0], dob[1] * 1 - 1);
    var age = Math.floor((now.getTime() - born.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
    if (area == "adults" && age<18)
    {
        alert("You need to be 18 years of age and older for the Adults books!");
        return false;
    }
return true;
}
</script>

Je ne suis qu'un débutant en JavaScript, donc il y a probablement quelque chose de très évidemment de mal avec ce morceau de code. Mais, fondamentalement, ce qui est écrit est ce que je veux atteindre.

Voir si la Date de Naissance est de plus de 18 ans si les Adultes Livres de la Zone d'Intérêt est choisie.

Le code HTML peut être vu ci-dessous de ce que j'ai:

<form method="post" name="form1" onsubmit="return validateForm()" action="">
    Fields marked with * are required to be filled out!
    <br />
    First Name*: 
    <input type="text" id="firstname" name="First Name" placeholder="e.g. John" />
    <br />
    Surname*:
    <input type="text" id="surname" name="Surname" placeholder="e.g. Smith" />
    <br />
    Email address*:
    <input type="text" id="emailaddress" name="Email Address" placeholder="e.g. [email protected]" />
    <br />
    Contact phone number:
    <input type="text" id="phonenumber" name="Contact Phone Number" placeholder="e.g. 0410 224 567" />
    <br />
    Date of Birth*:
    <input type="text" id="dateofbirth" name="Date of Birth" placeholder="DD/MM/YYYY" />
    <br />
    Area of Interest*:
    <select id="areaofinterest" name="Area Of Interest" />
    <option value="">Select interest</option>
    <option value="children">Books for children</option>
    <option value="adults">Books for adults</option>
    </select>
    <br />
    <input type="submit" value="Submit" /><input type="reset" value="Reset" />
</form>

J'apprécie tous les commentaires. Et je suis désolé si cela a déjà répondu. Je sais que c'est mais je ne peux pas sembler obtenir que cela fonctionne pour mon but. Je peut faire une simple erreur de format ou oublié quelque chose. C'est probablement quelque chose de très évident.

  • Fondamentalement, le code ne fonctionne pas. Il vient passe à travers. Je pense que l'une des dates est dans le mauvais format que lorsque l'âge est appelée, elle renvoie aussi NaN
  • Merci pour la correction. Désolé pour l'erreur 🙂
InformationsquelleAutor Curley5959 | 2013-05-31