在jQuery中禁用button

我的页面创build多个buttonid = 'rbutton_"+i+"' 。 以下是我的代码:

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

在Javascript中

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

但是,当我点击它时,它不会禁用我的button。

使用.prop代替(并清理您的select器string):

 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事件绑定,而不是:

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

试试这个代码:
HTML

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

function

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

其他解决scheme与jQuery

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

DEMO


用纯javascript的其他解决scheme

 <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

这里有两件事,根据OP的问题,最高的投票答案在技术上是正确的。

简单概括为:

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

但是,如果你使用jQuery UI(我知道OP不是,但有些人来到这里可能是),然而,这将禁用button单击事件,它不会使button显示禁用根据UI样式。

如果您使用的是一个jQuery UI风格的button,那么应该通过以下方式启用/禁用它:

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

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

尝试这个

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

简单地说,它在HTML中工作正常:

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

在JQuery方面把这个function禁用button:

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

对于启用button:

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

就这样。

这是你怎么用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 

这适用于我:

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

这是我认为最简单的方法:

 // All buttons where id contains 'rbutton_' $("button[id*='rbutton_']").click(function() { $(this).prop('disabled', true);//disable }); $('#enable').click(function(){ $("button[id*='rbutton_']").each(function(){ $(this).prop('disabled', false);// enable }) }) 
 <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> 

我想在某些情况下禁用button,我正在使用1st解决scheme,但它不会为我工作。 但是,当我使用第二个它的工作。以下是从浏览器控制台的输出。

1. $('#psl2 .btn-continue')。prop(“disabled”,true)

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

2. $('#psl2 .btn-continue')。attr(“disabled”,“disabled”)

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

禁用button:

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

启用button:

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