jquery / javascript禁用表格单元格中的按钮

时间:2012-11-28 16:46:38

标签: javascript jquery struts2 struts

我有一个带有2个按钮的表格单元格。

<td align="left" >
 <input type="button" value="edit"/>
<input  type="button" value="save" disabled="disabled"/>
</td>

默认情况下,保存按钮被禁用。在单击编辑按钮时,必须启用保存按钮按钮。问题是我无法将id分配给按钮,因为该表是使用struts2 s:iterator标签动态生成的。如果我这样做,将有2个或更多具有相同id的单元格

我怎样才能做到这一点?

4 个答案:

答案 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。

  1. 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>
    
  2. 将单个事件观察者附加到表中(当然是加载页面时)

    $("#dataTable tbody").on("click", ".edit", function(event) {
      $(this).next(".save").prop("disabled", false);
    });
    

    当用户点击带有class="edit"的表格内id="dataTable"的任何按钮时,它会激活,然后在点击的按钮后找到class="save"的下一个按钮,并启用找到的按钮。