2011-09-08 17 views
1

工作,我有一個禁用的按鈕一些代碼,使用jQuery它:jQuery的禁用=禁用未在Safari

$('#fishID').attr('disabled', 'disabled'); 

這似乎在每一個瀏覽器(IE6,IE7,8,9,Chrome的工作, Firefox),但Safari不會禁用該按鈕。

我應該把它設置爲'disabled', 'true'?有什麼不同?

是否有Safari的怪癖可能解釋這不工作?

回答

4
在jQuery的

1.6+你應該使用.prop('disabled', true);,這應該適用於所有。

+0

啊哈我看 - 然後我外行的解釋是,屬性是你所擁有的標記,該屬性無論是存儲在內存中。更改屬性不應該影響它是否被禁用,您必須更改屬性 - safari是唯一符合標準的/足以關注此問題的瀏覽器。這是你想要的財產,這就是爲什麼這個答案是正確的。 – NibblyPig

0

我花了這個時間。以下是我所學到的:

  1. disabled =「disabled」在ie6/7中不起作用,當您使用jQuery動態更改屬性時。

  2. 解決此問題的唯一方法是克隆select,添加disabled屬性(或刪除它),然後再追加。

例子:

//clone dropdown and append for ie support 
var _parent = $("#selectElement").parent(); 
var _clone = $("#selectElement"); 
$(_clone).attr("disabled","true"); 
$("#selectElement").remove(); 
$(_parent).append(_clone);