Champ obligatoire

WRInaute impliqué
J'utilise ce formulaire, des selects qui ne s'affiche selon la première sélection :

Code:
    <SELECT name="lechoix" id="general" onchange="montreSelect();" required>
    <OPTION value="0">----------</OPTION>
    <OPTION value="1">animaux</OPTION>
    <OPTION value="2">legumes</OPTION>
    </SELECT>

    <SELECT name="animaux" id="select1" style="display:none" required>
    <OPTION value="1">Chien</OPTION>
    <OPTION value="2">Chat</OPTION>
    <OPTION value="3">Cheval</OPTION>
    </SELECT>
	
    <SELECT name="legumes" id="select2" style="display:none" required>
    <OPTION value="1">patate</OPTION>
    <OPTION value="2">faillot</OPTION>
    </SELECT>
	
    <script type="text/javascript">
    function montreSelect(){
      document.getElementById("select1").style.display='none';
      document.getElementById("select2").style.display='none';
      document.getElementById("select"+document.getElementById("general").value).style.display='block';
    }
    </script>

Le problème c'est dans required, si le champ est caché required reste en fonction et ne laisse pas le formulaire passer, un moyen de le faire en ajax dans la même fonction  et supprimer required ?

Merci beaucoup
 
WRInaute impliqué
il faut ajouter une fonction, avant la validation du formulaire, qui va tester si
document.getElementById("general").value == "0"
si c'est le cas, il faut retourner false, si ce n'est pas le cas, retourner true.

il nous faudrait le reste du code pour être plus précis.
 
WRInaute impliqué
Oui je sais car si on désactive le javascript sur le navigateur ça passe même vide. Et peut on sans créer une fonction directement dans ma fonction javascript ajouter required quand c'est display='block' ?
 
WRInaute accro
web proxy a dit:
vaux mieux faire le test du champ obligatoire du coté serveur pas uniquement au niveau client
Non la vérité c'est que tu dois procéder a des tests des deux côtés ... il est en effet pertinent d'avoir un contrôle de présence, limites, format, ... côté client pour éviter un aller retour intempestif (c'est une forme de protection client) et il faut de toute façon avoir un contrôle côté serveur pour les mêmes raisons (qui ne devrait pas se présenter) ET pour des raisons de sécurité.
 
Discussions similaires
Haut