在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");
尝试这个
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');