2012-03-06 213 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);