2012-03-06 77 views
2

我在我的页面中有一个按钮,我想禁用它。有没有办法做到这一点? 我的代码如下已禁用按钮

<script type="text/javascript"> 

    $(document).ready(function() { 

    var myButton = $(this, "input[type='button']"); 
    $(myButton).attr("disabled", "true"); 

    }); 

</script> 

<input id="create" class="button" type="button" > 

回答

1
$('#create').attr("disabled", "disabled"); 
6

变化

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

$("#create").attr("disabled", "disabled"); 

当你想重新启用

$("#create").removeAttr("disabled"); 
+0

除非他使用古老的jQuery版本,使用'.prop()'设置布尔值会好得多。 – ThiefMaster 2012-03-26 12:00:23

+0

请详细说明一下。我不知道'.prop()'方法。是否推荐'attr()'? – xbonez 2012-03-26 16:18:21

+0

使用'.prop()'就像'element'是DOM元素一样设置'element.something'。 '.attr()'就像调用'element.setAttribute(...)'一样。虽然'disabled'两个都可以工作,但它不适用于表单元素的'value'等东西(尽管您仍然想为这些元素使用'.val()')。 – ThiefMaster 2012-03-26 16:23:59

0
var $myButton = $("input#create"); 
$myButton.click(function(e) { 
    e.preventDefault(); 
    if($(this).hasClass("disabled")) { 
     // do NOT submit 
    } else { 
     // submit 
    } 
}); 

// somewhere else... 
$myButton.addClass("disabled"); 

并使用一些CSS样式使按钮显示禁用(即, opacity: 0.4和/或使它灰色或什么的)。

+0

不要使用'something#id '而只是'#id' - 无论如何,一个id必须是唯一的,所以它不太可能在另一个元素上有相同的id。 – ThiefMaster 2012-03-26 12:03:40

+0

@ThiefMaster:我主要使用它的语义,以便读取上面片段的人总是知道它是某个输入元素。 – Harti 2012-03-28 14:58:00

-1

我会使用

$('#create').attr("disabled", true); 

不带引号

2

使用.prop()设置按钮的disabled属性:

myButton.prop('disabled', true); 

注意myButton已经是一个jQuery对象,所以你再也不需要$()了。要再次启用该按钮,只需使用myButton.prop('disabled', false);

您的选择器创建myButton也是错误的。用这个代替:

var myButton = $("input[type='button']"); 

甚至更​​好它的ID选择它(更快,如果你有多个按钮,也能在你的页面):

var myButton = $('#create'); 

所以,为了保持短和简单的,使用以下内容:

$('#create').prop('disabled', true);