487 votes

bouton de désactivation en jquery

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

<button type='button' id = 'rbutton_"+i+"' onclick=disable(i);>Click me</button>

En Javascript

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

Mais ça ne désactive pas mon bouton, quand je clique dessus.

813voto

Blazemonger Points 39230

Utilisez .prop à la place (et nettoyez votre chaîne de sélection) :

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

HTML généré :

<button id="rbutton_1" onclick="disable(1)">Click me</button>
<!-- wrap your onclick in quotes -->

Mais l'approche "best practices" consiste à utiliser la liaison événementielle JavaScript et à this à la place :

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button class="rbutton">Click me</button>

http://jsfiddle.net/mblase75/2Nfu4/

40voto

Essayez ce code :
HTML

<button type='button' id = 'rbutton_'+i onclick="disable(i)">Click me</button>

fonction

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

Autre solution avec jquery

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

DEMO


Autre solution avec du javascript pur

<button type='button' id = 'rbutton_1' onclick="disable(1)">Click me</button>

<script>
function disable(i){
 document.getElementById("rbutton_"+i).setAttribute("disabled","disabled");
}
</script>

DEMO2

16voto

GeorgePradeep Points 1

simplement son travail bien

 In HTml 

 <button type="button" id="btn_CommitAll"class="btn_CommitAll"  >save</button>

 In Jquery side put this function for disable button

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

     For enable button 

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

          }

              Thats All

4voto

user890332 Points 223

Voici comment le faire 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

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