2013-03-10 67 views
0

我有一個類似於此的表結構,但上面和下面有很多其他嵌套的東西。我需要禁用按鈕和鏈接(或可能更改按鈕的可見性,而不是禁用它?)。jquery - 禁用動態名稱按鈕和輸入

按鈕ID和錨名稱是動態的(值10以下),我用盡了一切我能想到的搶從表中這些元素和禁用,但似乎沒有任何工作:

<tr> 
<td class="t-last"> 
<button id="btnEdit10" class="ui-state-active ui-corner-all button-outer"  
onclick="ClientValues(10);">Edit</button> 
<a name="lnkDelete10" class="cursor_hand" onclick="DeleteIt(10,200);"> 
<u>Delete</u> 
</a> 
</td> 
<tr> 
<td class="t-last"> 
<button id="btnEdit17" class="ui-state-active ui-corner-all button-outer"  
onclick="ClientValues(17);">Edit</button> 
<a name="lnkDelete17" class="cursor_hand" onclick="DeleteIt(17,200);"> 
<u>Delete</u> 
</a> 
</td> 

我猜猜正則表達式將是我最好的選擇,但我仍然沒有得到它的工作。這是我試圖用來禁用按鈕,但我不能訪問它:

$('btnEdit10').attr("disabled", true); //after looping to the control 

任何幫助將不勝感激!

編輯:我不是很清楚我的問題。我試圖禁用以「btnEdit」開頭的每個按鈕以及以「lnkDelete」開頭的每個鏈接。

+0

$('#btnEdit10')????? – ssilas777 2013-03-10 20:15:39

+0

您是否試圖禁用所有以'btnEdit'開頭的內容,或者僅僅是'btnEdit10',如果是的話,'10'從哪裏來? – adeneo 2013-03-10 20:23:06

+0

我試圖禁用以「btnEdit」開頭的所有內容,或者對於鏈接,以「lnkDelete」開頭。我想然後循環並禁用它們(鏈接和按鈕)。 – Justin 2013-03-10 20:31:07

回答

2

要禁用以 「btnEdit」 開始的一切,使用選擇 「屬性開頭」

$('[id^="btnEdit"], [id^="lnkDelete"]').prop("disabled", true); 

編輯:

或或許:

$('[id^="btnEdit"]').prop("disabled", true); 
$('[id^="lnkDelete"]').attr("onclick", ""); 
+0

按鈕禁用工作完美!但由於某些原因鏈接未被禁用。它以前只有'name'屬性,所以我添加了一個相同的'id'屬性,但它仍然不起作用。 onclick事件仍然激發。 – Justin 2013-03-10 20:59:17

+1

你不能真的禁用錨點,因爲它沒有任何屬性!我確定你在哪裏試圖做,但如果它是禁用點擊功能,你將不得不刪除它。我會更新我的答案? – adeneo 2013-03-10 21:27:28

+0

哇,我真希望能夠親自謝謝你!它完美無瑕! – Justin 2013-03-11 00:20:23

4

如果我理解得很好,像這樣

$('#btnEdit' + dynamic_part).attr("disabled", disable); 

更新:

您可以選擇所有的ID開始btnEdit這樣

$("[id^=btnEdit]").attr("disabled", disable); 
+1

使用'prop'比'attr'更好。但無論如何+1。 :) – 2013-03-10 20:22:52

+0

我無法弄清的部分是如何獲得「dynamic_part」。它通常是一個數字,但我想測試一個按鈕後面的任何東西:id =「btnEdit3249939493394x」。我如何獲得「dynamic_part」?抱歉,我對jQuery非常陌生,非常感謝您的幫助。 – Justin 2013-03-10 20:29:12

+0

從哪裏得到那個號碼? – InTry 2013-03-10 20:32:15

1

如果你只是想禁用那麼你可以做這樣的事情...

$('#btnEdit10').attr("disabled", disable); 

否則,如果你想控制一組按鈕禁用,你可以做什麼InTry提到和設置變量選擇名稱旁邊......

$('#btnEdit' + my_number).attr("disabled", disable); 

和存儲適當的數值(S)通過一些簡單的編碼進入該變量(my_number)。

$('[id^="btnEdit"]').prop("disabled", true); 

,或兩者兼有:

+0

動態數字是我無法弄清楚的。如何禁用以「btnEdit」開頭的每個按鈕或以「lnkDelete」開頭的鏈接? – Justin 2013-03-10 20:32:01

+1

adeneo已回答 – blackhawk 2013-03-10 20:53:43

+0

是的,adeneo是一個令人生畏的救命! – Justin 2013-03-11 00:29:10