Désactiver le bouton dans jQuery

Ma page crée plusieurs boutons comme id = 'rbutton_"+i+"' . Voici mon code:

  

En Javascript

 function disable(i){ $("#rbutton'+i+'").attr("disabled","disabled"); } 

Mais cela ne désactive pas mon bouton quand je clique dessus.

Utilisez plutôt .prop (et nettoyez votre chaîne de sélecteur):

 function disable(i){ $("#rbutton_"+i).prop("disabled",true); } 

HTML généré:

   

Mais l’approche des “meilleures pratiques” consiste à utiliser la liaison d’événements JavaScript et this place:

 $('.rbutton').on('click',function() { $(this).prop("disabled",true); }); 
   

Essayez ce code:
HTML

  

fonction

 function disable(i){ $("#rbutton_"+i).attr("disabled","disabled"); } 

Autre solution avec jquery

 $('button').click(function(){ $(this).attr("disabled","disabled"); }); 

DEMO


Autre solution avec javascript pur

   

DEMO2

Il y a deux choses ici, et la réponse la plus élevée est techniquement correcte selon la question des PO.

Bref résumé comme:

 $("some sort of selector").prop("disabled", true | false); 

Toutefois, si vous utilisez l’interface utilisateur jQuery (je sais que l’OP ne l’était pas, mais que certaines personnes arrivent ici), alors que cela désactivera l’événement clic des boutons, le bouton ne sera pas désactivé selon le style de l’interface utilisateur.

Si vous utilisez un bouton de style jQuery UI, il doit être activé / désactivé via:

 $("some sort of selector").button("enable" | "disable"); 

http://api.jqueryui.com/button/#method-disable

Essaye ça

 function disable(i){ $("#rbutton_"+i).attr("disabled",true); } 

bouton de désactivation:

 $('#button_id').attr('disabled','disabled'); 

bouton d’activation:

 $('#button_id').removeAttr('disabled'); 

Simplement ça marche bien, en HTML:

  

Dans le côté JQuery, mettez cette fonction pour désactiver le bouton:

 function disableButton() { $('.btn_CommitAll').prop("disabled", true); } 

Pour activer le bouton:

 function enableButton() { $('.btn_CommitAll').prop("disabled", false); } 

C’est tout.

C’est le moyen le plus simple à mon avis:

 // All buttons where id contains 'rbutton_' const $buttons = $("button[id*='rbutton_']"); //Selected button onclick $buttons.click(function() { $(this).prop('disabled', true); //disable clicked button }); //Enable button onclick $('#enable').click(() => $buttons.prop('disabled', false) //enable all buttons ); 
         

Voici comment vous le faites avec ajax.

 $("#updatebtn").click(function () { $("#updatebtn").prop("disabled", true); urlToHandler = 'update.ashx'; jsonData = data; $.ajax({ url: urlToHandler, data: jsonData, dataType: 'json', type: 'POST', contentType: 'application/json', success: function (data) { $("#lbl").html(data.response); $("#updatebtn").prop("disabled", false); //setAutocompleteData(data.response); }, error: function (data, status, jqXHR) { alert('There was an error.'); $("#updatebtn").prop("disabled", false); } }); // end $.ajax 

Cela fonctionne pour moi:

  

Je veux désactiver le bouton dans certaines conditions, j’utilise la 1ère solution mais cela ne fonctionnera pas pour moi. Mais quand j’utilise le deuxième, ça a fonctionné.

1. $ (‘# psl2 .btn-continue’). Prop (“disabled”, true)

 ​Next​ 

2. $ (‘# psl2 .btn-continue’). Attr (“désactivé”, “désactivé”)

 ​Next​ 

Pour les boutons de l’interface utilisateur de Jquery, cela fonctionne:

 $("#buttonId").button( "option", "disabled", true | false );