我有一个带有2个按钮的表格单元格。
<td align="left" >
<input type="button" value="edit"/>
<input type="button" value="save" disabled="disabled"/>
</td>
默认情况下,保存按钮被禁用。在单击编辑按钮时,必须启用保存按钮按钮。问题是我无法将id分配给按钮,因为该表是使用struts2 s:iterator标签动态生成的。如果我这样做,将有2个或更多具有相同id的单元格
我怎样才能做到这一点?
答案 0 :(得分:4)
您需要在editButton
上绑定click()个事件,并使用attr()设置saveButton
的已停用的属性。可以安全地将代码放在$(document).ready()中,以便在使用之前准备好DOM元素。
你可以这样做,
<强> Live Demo 强>
$(document).ready(function(){
$('#editButton').click(function(){
$('#saveButton').attr('disabled', false);
});
});
答案 1 :(得分:2)
如果您想要 ID
$('#editButton').on('click', function(){
$('#saveButton').prop('disabled', false);
});
如果你在多个td中有这种结构,你可以编写一个通用事件,其中只会启用与编辑按钮对应的按钮。
对于无ID
的重复结构$(':button[value="edit"]').on('click', function(){
var $td = $(this).closest('td');
$td.find($(':button[value="save"]')).prop('disabled', false);
});
<强> HTML 强>
<tr>
<td align="left">
<input type="button" value="edit" />
<input type="button" value="save" disabled="disabled" />
</td>
</tr>
<tr>
<td align="left">
<input type="button" value="edit" />
<input type="button" value="save" disabled="disabled" />
</td>
</tr>
<tr>
<td align="left">
<input type="button" value="edit" />
<input type="button" value="save" disabled="disabled" />
</td>
</tr>
<强> Check Fiddle 强>
答案 2 :(得分:0)
您可以使用jquery
$('#editButton').click(function(){$("#saveButton").attr('disabled',false)});
在javascript中
document.getElementById('saveButton').setAttribute('disabled',false);
答案 3 :(得分:0)
每个按钮不需要id
秒。您只需要event delegation,整个表格为id
,按钮为class
es。
将id
分配到表格,将class
分配给按钮,例如像
<table id="dataTable" ...>
...
<td style="text-align:left;">
<input type="button" class="edit" value="edit" />
<input type="button" class="save" value="save" disabled="disabled" />
</td>
...
</table>
将单个事件观察者附加到表中(当然是加载页面时)
$("#dataTable tbody").on("click", ".edit", function(event) {
$(this).next(".save").prop("disabled", false);
});
当用户点击带有class="edit"
的表格内id="dataTable"
的任何按钮时,它会激活,然后在点击的按钮后找到class="save"
的下一个按钮,并启用找到的按钮。