2 inputs required : Accepter l'un ou l'autre

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous !

Est-il possible, lorsqu'on a deux input required de renseigner l'un ou l'autre et faire valider le form ?
<input type="tel" name="valeur1" id="valeur1" value="" required >
<input type="tel" name="valeur2" id="valeur2" value="" required >

Un des deux input doit être rensigné obligatoirement avant l'envoi... pouvez-vous m'aider à le faire svp ?

Configuration: Windows / Firefox 64.0

4 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Et si tu veux saisir 3 valeurs différentes ?

    voici une petite correction.
    <script>
    function checkTel(elm){
     var valeur = elm.value;
     var inpTels = document.getElementsByClassName('telrequire');
     for (var i = 0; i< inpTels.length ; i++) {
        var inp = inpTels[i];
        if(inp.value == "" && inp.value != valeur){
          inp.value = valeur;
        }  
     }
    }
    </script>
    <div class="container-fluid">
    <input type="tel" class="telrequire" name="Fr_YUP" id="Fr_YUP" value="" required onKeyUp="checkTel(this)">
    <input type="tel" class="telrequire" name="Fr_MTN" id="Fr_MTN" value="" required onKeyUp="checkTel(this)">
    <input type="tel" class="telrequire" name="Fr_ORG" id="Fr_ORG" value="" required onKeyUp="checkTel(this)">
    


    Une autre solution serait de laisser tes champs sans require et ajouter un champ caché (en hidden) qui lui serait en require
    Puis, en javascript, mettre ce champ à vrai si tu remplis au moins un des champs...
    Un truc du genre
    <script>
    function checkTel(){
     var inpTels = document.getElementsByClassName('telrequire');
     var inpVerif = document.getElementById('verifTel');
     var verif = 0;
     for (var i = 0; i< inpTels.length ; i++) {
        var inp = inpTels[i];
        var inputValue = inp.value;
        if(inputValue.length >0 ){
          verif++;
        }  
     }
     inpVerif.value = verif;
    }
    </script>
    <div class="container-fluid">
    <input type="tel" class="telrequire" name="Fr_YUP" id="Fr_YUP" value=""  onKeyUp="checkTel()">
    <input type="tel" class="telrequire" name="Fr_MTN" id="Fr_MTN" value=""  onKeyUp="checkTel()">
    <input type="tel" class="telrequire" name="Fr_ORG" id="Fr_ORG" value=""  onKeyUp="checkTel()">
    <input type="numner" id="verifTel" value="0" required > <!--A changer en type="hidden" lorsque tu auras vu comment ça marche --> 
    
    


    1
    1. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
       
      Merci Jordane, il me seront bien utiles ces deux codes aussi ^^ surtout le second.
      0
  2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Hormis le faire via Javascript, je ne vois pas.
    0
  3. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    J'essaie de le faire de cette manière :
    Si val1 est renseigné, alors val2 copie ce qu'il y a dans val1 et vis-versa...
    Mais j'y arrive pas :
    <input type="tel" name="val2" id="val2" value="" required onChange="MSISDN();">
    <input type="tel" name="val1" id="val1" value="" required onChange="MSISDN();">

    <script>
    function MSISDN() {
    var VAL_02 = document.getElementById("val2").value;
    var VAL_01 = document.getElementById("val1").value;

    if(VAL_02 != "") {VAL_01 = VAL_02} else {VAL_02 = VAL_01};
    }
    </script>
    0
  4. Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
     
    J'ai réussis ^^ mais je ne sais pas s'il y a un autre moyen...

    <input type="tel" name="Fr_YUP" id="Fr_YUP" value="" required onKeyUp="MSISDN_YUP()">
    <input type="tel" name="Fr_MTN" id="Fr_MTN" value="" required onKeyUp="MSISDN_MTN()">
    <input type="tel" name="Fr_ORG" id="Fr_ORG" value="" required onKeyUp="MSISDN_ORG()">

    <script>
    function MSISDN_YUP() {
    var x = document.getElementById("Fr_YUP").value;
    document.getElementById("Fr_MTN").value = "";
    document.getElementById("Fr_MTN").value = x;

    document.getElementById("Fr_ORG").value = "";
    document.getElementById("Fr_ORG").value = x;
    }

    function MSISDN_MTN() {
    var x = document.getElementById("Fr_MTN").value;
    document.getElementById("Fr_YUP").value = "";
    document.getElementById("Fr_YUP").value = x;

    document.getElementById("Fr_ORG").value = "";
    document.getElementById("Fr_ORG").value = x;
    }

    function MSISDN_ORG() {
    var x = document.getElementById("Fr_ORG").value;
    document.getElementById("Fr_YUP").value = "";
    document.getElementById("Fr_YUP").value = x;

    document.getElementById("Fr_MTN").value = "";
    document.getElementById("Fr_MTN").value = x;
    }
    </script>
    0