Commit 87f886f0 authored by Julien Ait azzouzene's avatar Julien Ait azzouzene
Browse files

feat: choix de la ville dans la liste déroulante

parent 6c6330a7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@
    <h1>Instant Weather</h1>
    <input type="search" id="codePostalInput" placeholder="Entrez votre code postal"><button id="recherche">Rechercher</button>
    <br>
    <select id="villeListe">
    <select id="villeListe" class="cache">
        <option>--Sélectionner une ville--</option>
    </select>
    <div class="resultat cache" >
+35 −9
Original line number Diff line number Diff line
// Éléments du DOM
const barreRechercheCodePostal = document.getElementById("codePostalInput");
const boutonRechercheCodePostal = document.getElementById("recherche");
const listeDeroulanteVilles = document.getElementById("villeListe");

boutonRechercheCodePostal.addEventListener("click", onRechercher);
listeDeroulanteVilles.addEventListener("change", onSelectionneVille);

let villes = [];

boutonRechercheCodePostal.addEventListener("click", onRechercher);


function onRechercher(){
    let valeurS = barreRechercheCodePostal.value;
    let codePostalS = barreRechercheCodePostal.value;

    let valeurN = Number.parseInt(valeurS);
    console.log(valeurS.length);
    let codePostalN = Number.parseInt(codePostalS);
    
    if(isNaN(valeurN)){
        onErreurDeSaisie("Le code postal contient des caractères non numériques.");
    if(isNaN(codePostalN)){
        onErreurSaisieCodePostal("Le code postal contient des caractères non numériques.");
        return;
    }

    if(valeurS.length != 5){
        onErreurDeSaisie("Le code postal doit contenir 5 caractères.");
    if(codePostalS.length != 5){
        onErreurSaisieCodePostal("Le code postal doit contenir 5 caractères.");
        return;
    }

    setVilles(codePostalN).then(listeVille);
}

function onErreurDeSaisie(message){
function onErreurSaisieCodePostal(message){
    alert(message);
    listeDeroulanteVilles.classList.add("cache");
}

function listeVille(){
    listeDeroulanteVilles.innerHTML = `<option value="placeholder">--Sélectionner une ville--</option>`;

    villes.forEach((ville) => {
        listeDeroulanteVilles.innerHTML += `\n<option value="${ville}">${ville}</option>`;
    });
    listeDeroulanteVilles.classList.remove("cache");
}

const setVilles = async codepostal => {
@@ -42,6 +58,16 @@ const setVilles = async codepostal => {
    })
}

function onSelectionneVille(){
    let ville = listeDeroulanteVilles.value;

    if(ville === "placeholder"){
        return;
    }

    alert(ville);
}

const getVilles = () => {
    return villes;
}
 No newline at end of file