2012-07-11 74 views
0

我需要更改下面的代碼:更改控件ID變量

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

要這樣:

var ControlID = "#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7e7_ctl00_btnAdd" 

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

但上面的一個不工作..什麼是錯誤?

+0

你的代碼是正確的。儘管醜陋。 – 2012-07-11 04:45:04

+0

究竟是什麼問題? – 2012-07-11 04:45:57

+0

在這裏工作很好witth ** attr:**演示http://jsfiddle.net/2MKX6/1/與** prop ** http://jsfiddle.net/2MKX6/ – 2012-07-11 04:51:27

回答

0

我懷疑它是不是在任何情況下工作。使用.prop()而不是.attr()來禁用該元素。

var ControlID = "#ctl00_PlaceHolderMain_SPWebPartManager_g_3c1ba10a_23ec_4ab5_b303_18f8bd7ee7e7_ctl00_btnAdd" 
$(ControlID).prop("disabled", true); 

屬性通常影響一個DOM元素的動態狀態,而不改變串行化HTML屬性。示例包括輸入元素的值屬性,輸入和按鈕的禁用屬性或複選框的選中屬性。 .prop()方法應該用於設置禁用和檢查,而不是.attr()方法。 .val()方法應該用於獲取和設置值。

來源:http://api.jquery.com/prop/

+0

可能有用:http://stackoverflow.com/a/6048113/803925 – nbrooks 2012-07-11 04:50:57

1

嘗試

$('<%:Control.ControlID%>').attr("disabled", true); 
+0

這不工作! – PeteEngineer 2012-07-11 06:14:20

+0

我無法理解什麼是不工作,你需要提供更多的上下文來「這不工作」 – 2012-07-11 06:17:27

+0

選擇器是否返回正確的元素?你有使用螢火蟲或任何其他DOM督察檢查它?有沒有任何JavaScript相關的錯誤?你使用的是什麼版本的.net?如果它的4,那麼你可以使你的控制ID靜態... – 2012-07-11 06:19:02