[jquery] jQuery에서 비활성화 버튼

내 페이지는로 여러 개의 버튼을 만듭니다 id = 'rbutton_"+i+"'. 아래는 내 코드입니다.

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

자바 스크립트에서

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

그러나 버튼을 클릭해도 버튼이 비활성화되지 않습니다.



답변

.prop대신 사용 하고 선택기 문자열을 정리하십시오.

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

생성 된 HTML :

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

그러나 “모범 사례”접근 방식은 JavaScript 이벤트 바인딩을 this대신 사용하는 것입니다.

$('.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/


답변

이 코드를 사용해보십시오 :
HTML

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

함수

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

jquery를 사용하는 다른 솔루션

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

데모


순수한 자바 스크립트가있는 다른 솔루션

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

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

데모 2


답변

여기에는 두 가지가 있으며 OP 질문에 따라 가장 높은 투표 응답이 기술적으로 정확합니다.

간단히 요약하면 다음과 같습니다.

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

그러나 jQuery UI를 사용해야하는 경우 (OP는 아니지만 여기에 도착하는 사람들이있을 수 있음을 알고 있음) 버튼 클릭 이벤트를 비활성화하면 UI 스타일에 따라 버튼이 비활성화 된 것처럼 보이지 않습니다.

jQuery UI 스타일 버튼을 사용하는 경우 다음을 통해 활성화 / 비활성화해야합니다.

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

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


답변

이것은 내 의견으로는 가장 간단한 방법입니다.

// 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>


답변

이 시도

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


답변

비활성화 버튼 :

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

활성화 버튼 :

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


답변

HTML에서 간단하게 작동합니다.

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

JQuery 측에서 비활성화 버튼 에이 기능을 넣으십시오.

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

활성화 버튼의 경우 :

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

그게 다야.