page - Desativar botão no jQuery




jquery how to disable (8)

Minha página cria vários botões como id = 'rbutton_"+i+"' . Abaixo está o meu código:

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

Em Javascript

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

Mas não desativa meu botão quando clico nele.


Esta é a maneira mais simples na minha opinião:

// 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
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="rbutton_200">click</button>
<button id="rbutton_201">click</button>
<button id="rbutton_202">click</button>
<button id="rbutton_203">click</button>
<button id="rbutton_204">click</button>
<button id="rbutton_205">click</button>
<button id="enable">enable</button>


Eu quero desativar o botão em alguma condição, estou usando a primeira solução, mas não vai funcionar para mim. Mas quando eu uso o segundo, funcionou. Abaixo estão as saídas do console do navegador.

1. $ ('# psl2 .btn-continue'). Prop ("desativado", verdadeiro)

<a class=​"btn btn-yellow btn-continue" href=​"#">​Next​</a>

2. $ ('# psl2 .btn-continue'). Attr ("desativado", "desativado")

<a class=​"btn btn-yellow btn-continue" href=​"#" disabled=​"disabled">​Next​</a>

Isso funciona para mim:

<script type="text/javascript">
function change(){
    document.getElementById("submit").disabled = false;
}
</script>

Para os botões da IU do Jquery, isto funciona:

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

Tente este código:
HTML

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

função

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

Outra solução com jquery

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

DEMO

Outra solução com javascript puro

<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


Tente isso

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

Veja como você faz isso com 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

botão desativar:

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

botão de ativação:

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




jquery