使当前HTML行可编辑

时间:2015-06-23 16:56:55

标签: javascript jquery html-table

在屏幕截图中,我希望能够使用编辑图像的onClick事件来使同一行的5个正在进行的文本框可编辑。默认情况下,我将它们设置为“只读”。我已经寻找其他解决方案,但我不知道如何引用当前行。

<table class = "idtable" cellspacing="0">                                                
    <tr style="background-color:#999999;color:white">
      <th width="200px" class="tablehead">Type</th>
      <th width="200px" class="tablehead">Value</th>
      <th width="200px" class="tablehead">State</th>
      <th width="200px" class="tablehead">Status</th>
      <th width="200px" class="tablehead">Entry Date</th>
      <th width="100px" class="tablehead">Edit</th>
      <th width="100px" class="tablehead">Delete</th>
    </tr>   

    <tr style="text-align:center">
      <td class="idtable-borderleft"><input id="idType" class="readonly" type="text" value="INSTSERVICES" readonly></td>
      <td class="idtable-bordermid"><input id="idValue" class="readonly" type="text" value="1234        " readonly></td>
      <td class="idtable-bordermid"><input id="idState" style="font-size:85%" class="readonly" type="text"  value="UNMODIFIED" readonly></td>
      <td class="idtable-bordermid"><input id="idStatus" class="readonly" type="text" value="Active" readonly></td>
      <td class="idtable-bordermid"><input id="idStartDate" class="readonly" type="text" value="2015-03-17" readonly></td>
      <td class="idtable-bordermid"><img onclick="editRow()" src="https://localhost:8443/xxxxx/images/edit.png"></td>
      <td class="idtable-borderright"><a href="/xxxxx/timeServ.do?formName=updateIDs&delete=true&assocID=5320&credID=1234" ><img src="xxxxx/images/delete.gif"></a></td>
    </tr>                                                   
    <tr>
      <td colspan="7"><input style="margin-left:50%; margin-top: 5px" type="submit" value="Update"></td>
    </tr>                                                   
</table>

2 个答案:

答案 0 :(得分:0)

请勿使用onClick标记。

使用jQuery附加到click事件,然后遍历DOM以查找行,最后操作input标记。

在此示例中,我假设您向图像中添加了btnedit类:

$('.idtable .btnedit').click(function(){
    var row = $(this).closest('tr'); //find the parent row
    var inputs = $('input', row); //find all the inputs inside the row
    inputs.prop('readonly', false); //change the attribute
});

小提琴:http://jsfiddle.net/o26q8w6j/

答案 1 :(得分:-1)

你需要使用像jQuery这样的东西。

尝试双击下面的演示

中的文字

http://www.appelsiini.net/projects/jeditable/default.html

您需要触发ajax调用以更新数据库中的数据。