web-dev-qa-db-fra.com

jQuery - Désactiver les champs de formulaire

J'ai 2 champs: 1 entrée, 1 case de sélection.

Est-il possible de faire désactiver le navigateur par l'un des champs lorsque l'utilisateur utilise l'autre?

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

Toute aide à cet égard serait très appréciée.

Bravo à l'avance.

55
user159025
<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>
113
Matt Howell

Les documents jQuery disent d'utiliser prop () pour des choses comme désactivé, vérifié, etc. La manière la plus concise est également d'utiliser leur moteur de sélection. Donc, pour désactiver tous les éléments du formulaire dans un parent div ou form.

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

Et pour réactiver, vous pourriez faire

$myForm.find(':input:disabled').prop('disabled',false);
45
MetaSkills
$('input, select').attr('disabled', 'disabled');
12
Rigobert Song

essaye ça

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

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

vice versa pour la sélection également.

7
Nrj

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

0
Rohit bal