如何通过jquery(按名称)禁用/启用特定按钮?
该按钮没有ID,只有以下代码:
<button onclick="$('ChangeAction').value='SaveAndDoOrder';" value="Bye" name="SaveAndDoOrder" type="submit">
<i class="Icon ContinueIconTiny"></i>
<span class="SelectedItem">Bye</span>
</button>
答案 0 :(得分:5)
我建议使用ID代替名称,例如:
$("#myButton").attr("disabled", true);
这会将disabled
attribute添加到您的浏览器将自动禁用的按钮。如果你想使用名字,你可以像这样使用它:
$("button[name=myButton]").attr("disabled", true);
答案 1 :(得分:4)
试试这个:
$("button[name=SaveAndDoOrder]").attr("disabled", "disabled");
这将停用name
属性等于nameOfButton
的按钮。
$("button[name=SaveAndDoOrder]").removeAttr("disabled");
这将从同一个按钮中删除disable属性。
答案 2 :(得分:0)
至少已经给出了一个应该有用的答案。
我要说的是,你最好总是在你的元素上有一个ID,而不仅仅是依赖name属性。 name属性实际上仅用作发布表单项的标记。
CSS和Javascript DOM都经过优化,可以查看ID。您可以通过名称来完成,就像您已经给出的答案一样,但效率低得多 - 即使您可以使用相同数量的代码执行此操作,浏览器也必须在幕后进行更多工作。 / p>
此外,一些按名称访问元素的技术并非在所有浏览器中都可用(特别是旧版本的IE在CSS中的[attribute]类中存在问题)。
答案 3 :(得分:0)
这是我用来禁用或重新启用控件的代码:
function handleControlDisplay(className, foundCount, checked) {
var button = jQuery(className);
if (foundCount > 0 && foundCount == checked) {
// enable
button.removeAttr("disabled");
}
else {
// set the disabled attribute
button.attr("disabled", "true");
};
}
答案 4 :(得分:0)
创建并使用jQuery插件:
; (function($) {
$.fn.enable = function(b) {
return this.each(function() {
this.disabled = !b;
});
};
})(jQuery);
像这样使用
$(selector).enable(true|false);
答案 5 :(得分:0)
假设按钮是:
<asp:Button runat="server" ID="btn1" Text="button!"/>
然后将禁用:
$(document).ready (function () {
var a = $('#btn1');
a.attr("disabled", function () {
return "disabled";
});
});
完美运作
答案 6 :(得分:0)
我使用jQuery's prop():
$('#generate').click(function() {
$(this).prop('disabled', true);
}
要再次启用此按钮,请执行以下操作:
$(this).prop('disabled', false);
代码中的某处。