Désactiver l’entrée opposée si je tape dans une autre paire

Comment désactiver un champ de saisie si je tape dans un autre d’une paire, puis si je supprime l’entrée en appuyant sur la touche Retour arrière, par exemple, de sorte qu’il n’y ait plus rien dans le champ de saisie réactiver le second champ de saisie et inversement Le code que j’ai jusqu’à présent est en dessous mais ne fonctionne pas.

JavaScript:

//disable the opposite input field var ATGvalue = $('input#atgOrderId').val(); var BQvalue = $('input#bqOrderId').val(); if ( ATGvalue.length > 0) { $('input#bqOrderId').prop("disabled", true); } else { $('input#bqOrderId').removeAttr("disabled"); } if ( BQvalue.length > 0) { $('input#atgOrderId').prop("disabled", true); } else { $('input#atgOrderId').removeAttr("disabled"); } 

HTML:

   

Votre code fonctionne, mais une seule fois – pour qu’il soit mis à jour en permanence, vous devez d’abord envelopper le JS dans une fonction de gestionnaire d’événements et l’attacher à vos éléments d’entrée:

 function mutuallyExclusive( e ) { ... } $( '#bqOrderId' ).on( 'change keyup', mutuallyExclusive ); $( '#atgOrderId' ).on( 'change keyup', mutuallyExclusive ); 

Voir ce JSFiddle .

Je l’ai associé aux événements de change et de keyup : change permettant de gérer les change programmées (par script) et de keyup permettant de keyup à jour “instantanément” les statuts des champs – sinon, il attend que l’utilisateur supprime le focus de l’entrée pour appeler l’événement de change .

vous devez inclure votre code dans un événement pour vérifier quand un utilisateur tape quelque chose comme ceci:

 $(document).on('keyup','#bqOrderId',function(){ //your code }); $(document).on('keyup','#atgOrderId',function(){ //your code }); 

après pour changer ceci:

 $('input#bqOrderId').prop("disabled", true); $('input#atgOrderId').prop("disabled", true); 

pour ça:

 $('input#bqOrderId').attr("disabled",true); $('input#atgOrderId').attr("disabled", true);