2010-09-24 43 views
5

如何通过jquery(按名称)禁用/启用特定按钮?如何通过jquery禁用/启用按钮

的按钮没有ID,只是这个代码:

<button onclick="$('ChangeAction').value='SaveAndDoOrder';" value="Bye" name="SaveAndDoOrder" type="submit"> 
     <i class="Icon ContinueIconTiny"></i> 
     <span class="SelectedItem">Bye</span> 
     </button> 
+2

你应该在做一个新的帖子之前尝试搜索,最近几天同一个问题已被问好几次。 – RobertPitt 2010-09-24 10:37:01

回答

5

我会建议使用ID,而不是名称,如:

$("#myButton").attr("disabled", true); 

这将disabled attribute添加到按钮,你的浏览器将自动禁用。如果你想使用的名字,你可以使用它像这样:

$("button[name=myButton]").attr("disabled", true); 
+0

这个问题要求通过名称而不是id来禁用/启用按钮。 – 2010-09-24 10:47:08

+0

此代码无效,请参阅我上面更新的html代码! – Tom 2010-09-24 11:00:47

+0

啊!感谢您的评论,更新。 – 2010-09-24 11:22:37

4

试试这个:

$("button[name=SaveAndDoOrder]").attr("disabled", "disabled"); 

这将禁止与name按钮属性等于nameOfButton

$("button[name=SaveAndDoOrder]").removeAttr("disabled"); 

这将从相同的按钮中删除禁用属性。

+0

谢谢,但这段代码不起作用,请参阅我上面更新的html代码! – Tom 2010-09-24 11:01:03

+1

试试我的修改答案:) – 2010-09-24 11:07:35

0

至少有一个答案已经给出了应该工作。

然而,我会说,你会被建议始终在你的元素上有一个ID,而不只是依赖于name属性。名称属性实际上仅用作发布表单项的标记。

CSS和Javascript DOM都经过优化以查看ID。你可以通过名字来完成它,就像你已经给出的答案一样,但效率要低得多 - 即使你可以用相同数量的代码来完成,浏览器也必须在幕后做更多的工作。

另外一些按名称访问元素的技术在所有浏览器中都不可用(尤其是IE的老版本在CSS中具有[attribute]类的问题)。

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"); 

    }; 

} 
0

创建和使用jQuery插件:

; (function($) { 
    $.fn.enable = function(b) { 
     return this.each(function() { 
      this.disabled = !b; 
     }); 
    }; 
})(jQuery); 

使用这样

$(selector).enable(true|false); 
0

假设该按钮是:

<asp:Button runat="server" ID="btn1" Text="button!"/> 

则禁止将这样做:

$(document).ready (function() { 
    var a = $('#btn1'); 
    a.attr("disabled", function() { 
     return "disabled"; 
    });  
}); 

完美的作品

0

我用jQuery's prop()

$('#generate').click(function() { 
    $(this).prop('disabled', true); 
} 

要再次启用按钮,这样做:

$(this).prop('disabled', false); 

在某个地方我们的代码。