Mes conditions ne fonctionnent pas

Résolu/Fermé
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - 7 févr. 2023 à 13:32
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - 7 févr. 2023 à 15:45

bonjour a tous

cela est peut etre du a al fatigue mais cela fait une nouvelle fois que je cherche depuis des heures et des heures 

mais je ne trouve pas la solution et surtout je ne comprends aps pourquoi un code aussi simple ne fonctionne pas 

j'ai donc mes modes d'envois  et un champ code postal 

je souhaite controler le input de ce champ

pour cette partie 

je souhaite que si le champ possede au moins une lettre et que le pays d' envois soit different des pays bas que cela affiche une erreur

j'ai beau retourner le code dans les sens et essaye des centaines de fois 

cela ne fonctionne pas 

j'ai un message d'erreur qu'importe le pays choisi

je vous donne mon code au complet 

voici la partie hml

<div class="container">
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px; display: none;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison articleBtnposteinvisible" checked="checked" data-lang="de" data-nom="Ne sont pas encore choisi" value="" />
      Par poste enveloppe (je ne suis pas responsable des pertes éventuelles) 1,10 euros
    </div>
  </div>
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison articleBtnposte" data-lang="de" data-nom="POSTE-ENVELLOPPE-belgique" value="1.10" id="choix1" />
      <span>Par poste enveloppe (je ne suis pas responsable des pertes éventuelles) 1,10 euros</span>
    </div>
  </div>
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="MONDIAL-RELAY-BELGIQUE" data-lang="be" value="3.00" /> Par Mondial Relay avec suivi du colis 3 euros
    </div>
  </div>
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-COLIS-BELGIQUE" value="6.50" /> Par poste colis avec garanti a votre domicile 6.50 euros
    </div>
  </div>
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-COLIS-BELGIQUE_point" data-lang="fr" value="5.50" /> Par poste dans un point d’enlèvement 5.50 euros
    </div>
  </div>
</div>
<p>
  pour les payx bas
</p>
<div class="container">
  <!-- debut pour le reste les pays-bas-->
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="POSTE-ENVELLOPPE-PAYS-BAS" value="2" data-lang="de" /> Par poste
      enveloppe (je ne suis pas responsable des pertes éventuelles) 2 euro
    </div>
  </div>
  <div class="row" style="background: #ece9e7; margin-bottom: 10px; border-color: #000; border-style: solid; border-width: 5px;">
    <div class="col-sm">
      <input type="radio" name="choix_livraison" class="choix_livraison" data-nom="MONDIAL-RELAY-PAYS-BAS" data-lang="be" value="5.00" /> Par Mondial Relay avec suivi du colis 5 euros
    </div>
  </div>
</div>

<label for="cp">Code postal</label>
<input class="form-control" type="text" name="cp" value="" id="cp" required="required" />
<div id="mycp"></div>
<div id="mycp1"></div>

ensuite viens la partie javascript

//je recupere le mode de livraison 
$('input[name="choix_livraison"]').on('click', function() {
  var livraison = $(this).attr('data-nom')
  if (livraison === "POSTE-COLIS-BELGIQUE_point" || livraison === "POSTE-ENVELLOPPE-belgique" || livraison === "MONDIAL-RELAY-BELGIQUE" || livraison === "POSTE-COLIS-BELGIQUE") {
    console.log(livraison);

    //je recupere le code postale en temps reel
    $("#cp").on("input", function() {
      let cp = $(this).val();
      console.log(cp);

      if (cp === "81" || cp === "74" || cp === "72" || cp === "63" || cp === "59" || cp === "58" || cp === "57" || cp === "54" || cp === "52" || cp === "27") {

        //j'affiche un message si cp est egal a une de ses valeurs et je supprime le champ
        document.getElementById("mycp1").innerHTML = "<span style='background-color: #fffb11;color: red;font-weight: bold;'>Aucun code postal belge ne commence par  " + cp + "  </span>";
        //document.getElementById("cp").style.borderColor=  "crimson";         
        //     document.getElementById("cp").style.borderWidth = "0.25em";

        $('#cp').val('')

      } else {

        //ensuite je teste pour savoir si le code postal est vide
        if (cp === null || cp === '') {
          document.getElementById("mycp").innerHTML = "<sapn style='background-color: #fffb11;color: red;font-weight: bold;'>vous devez remplir votre cp </span>";
          document.getElementById("mycp1").innerHTML = "";
          document.getElementById("cp").style.borderColor = "crimson";
          document.getElementById("cp").style.borderWidth = "0.25em";

        } else {
          document.getElementById("mycp").innerHTML = "";
          document.getElementById("cp").style.borderColor = "";
          document.getElementById("cp").style.borderWidth = "";
          document.getElementById("mycp1").innerHTML = "";
        }
      }
    })
  }
})


// Ma deuxieme partie 

//je recupere le mode d'envois 
$('input[name="choix_livraison"]').on('click', function() {
  var livraison = $(this).attr('data-nom')
  console.log("autre pays que pays haut ", livraison);

  //je recupere le code postal en temps reel
  $("#cp").on("input", function() {
    let cp = $(this).val();
    console.log("livraisn ", livraison);
    console.log("cp", cp);

    //je teste afin de savoir si le code mondial relay est bien differents des deux ci dessous 
    if (livraison !== 'MONDIAL-RELAY-PAYS-BAS' || livraison !== "POSTE-ENVELLOPPE-PAYS-BAS") {

      //je cree une variable qui va me permettre de voir si cp possede bien des chiffres
      var cpvalidation = document.getElementById("cp").value;

      //je teste afin de savoir si cp content bien que des chiffres
      if (isNaN(cpvalidation)) {
        document.getElementById("mycp").innerHTML = "<span style='background-color: #fffb11;color: red;font-weight: bold;'>il ne peux y avoir que des chiffres</span>";
        document.getElementById("cp").style.borderColor = "crimson";
        document.getElementById("cp").style.borderWidth = "0.25em";
      } else {
        document.getElementById("mycp").innerHTML = "";
        document.getElementById("cp").style.borderColor = "";
        document.getElementById("cp").style.borderWidth = "";
      }
    }
  })
})

1 réponse

flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 187
7 févr. 2023 à 15:45

j'ai enfin trouve 

ma condition etait mauvaise

encore deux jours et presque une nuit pour bete erreur 

if(isNaN(cpvalidation) == true)
1