55 votes

jQuery - Désactiver les champs de formulaire

J'ai 2 champs: 1 entrée, 1 case à cocher.

Est-il possible de faire en sorte que le navigateur désactive l'un des champs lorsque l'utilisateur utilise l'autre?

Par exemple, si l'utilisateur entre des données dans l'entrée, la zone de sélection est désactivée. Si l'utilisateur sélectionne des données dans la liste de sélection (liste déroulante), l'entrée est désactivée.

Toute aide à ce sujet serait très appréciée.

Bravo d'avance.

113voto

bigmattyh Points 9167
 <script type="text/javascript" src="jquery.js"></script>          
<script type="text/javascript">
  $(document).ready(function() {
      $("#suburb").blur(function() {
          if ($(this).val() != '')
              $("#post_code").attr("disabled", "disabled");
          else
              $("#post_code").removeAttr("disabled");
      });

      $("#post_code").blur(function() {
          if ($(this).val() != '')
              $("#suburb").attr("disabled", "disabled");
          else
              $("#suburb").removeAttr("disabled");
      });
  });
</script>
 

Vous devrez également ajouter un attribut value à la première option sous votre élément select:

 <option value=""></option>
 

45voto

MetaSkills Points 1240

Les docs jQuery disent d'utiliser prop () pour des choses comme désactivé, coché, etc. De plus, le moyen le plus concis est d'utiliser leur moteur de sélecteurs. Donc, pour désactiver tous les éléments de formulaire dans un div ou parent de formulaire.

 $myForm.find(':input:not(:disabled)').prop('disabled',true);
 

Et pour permettre à nouveau que vous pourriez faire

 $myForm.find(':input:disabled').prop('disabled',false);
 

12voto

Rigobert Song Points 1806
$('input, select').attr('disabled', 'disabled');

7voto

Nrj Points 2788

essaye ça

 $("#inp").focus(function(){$("#sel").attr('disabled','true');});

$("#inp").blur(function(){$("#sel").removeAttr('disabled');});
 

vice versa pour le select aussi.

0voto

Rohit bal Points 19

Voici un plugin jquery pour faire la même chose: http://s.technabled.com/jquery-foggle

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X