2011-09-08 49 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);