jquery - 使用动态名称禁用Button和Input

时间:2013-03-10 20:13:53

标签: javascript jquery asp.net

我有一个与此类似的表结构,但上面和下面有很多其他嵌套的东西。我需要禁用按钮和链接(或者可能更改按钮可见性,而不是禁用它?)。

按钮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

非常感谢任何帮助!

编辑:我的问题并不是很清楚。我试图禁用每个以&#34; btnEdit&#34;开头的按钮。以及以&#34; lnkDelete&#34;开头的每个链接。

3 个答案:

答案 0 :(得分:4)

如果我理解得很好,就像这样

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

更新

您可以选择所有以btnEdit开头的ID

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

答案 1 :(得分:2)

要禁用以“btnEdit”开头的所有内容,请使用“属性开头的”选择器:

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

或两者兼有:

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

修改

或者也许:

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

答案 2 :(得分:1)

如果您只想禁用特定按钮,那么您可以执行以下操作......

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

否则,如果你想控制一组按钮来禁用,你可以做InTry提到的并在选择器名称旁边设置一个变量......

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

并使用一些简单的编码将适当的数值存储到该变量(my_number)中。