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

Résolu/Fermé
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - Modifié le 28 janv. 2019 à 18:04
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 28 janv. 2019 à 23:40
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 28 janv. 2019 à 23:41
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
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
28 janv. 2019 à 23:40
Merci Jordane, il me seront bien utiles ces deux codes aussi ^^ surtout le second.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
28 janv. 2019 à 18:20
Hormis le faire via Javascript, je ne vois pas.
0
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
28 janv. 2019 à 18:26
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
Sinistrus Messages postés 1017 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
28 janv. 2019 à 21:43
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