1
我有一个表格,我在单元格和列中有多个值。当用户点击一个TD手机在任何地方我希望它:如何用jQuery创建'编辑'/'取消编辑'框?
- 成为一个textarea
- 当前的文本粘贴到文本区域
- 把一个取消按钮在它之下
- 一旦取消按钮按下时,我想一切都变回来,因为它以前从点#1
这里一遍又一遍做
HTML:
<table style="border: 1px solid black;text-align: center;" id="tb">
<tr style="border: 1px solid black;">
<td style="border: 1px solid black;width:200px;height:100px;">
<div class="id1">TEST1</div>
</td>
<td style="border: 1px solid black;width:200px;height:100px;">
<div class="id2">TEST2</div></td>
<td style="border: 1px solid black;width:200px;height:100px;">
<div class="id3">TEST3</div></td>
</tr>
</table>
的jQuery:
var t = '';
var prevHtml = '';
var thisElement = '';
$(document).on('click', '#tb td', function()
{ prevHtml = $(this).html();
thisElement = this;
if ($(this).attr('data-status') == 'active'){return;};
$(this).attr('data-status', 'active');
t = $(this).text();
$(this).html('<div class="row custom-status-main"><div class="col-md-12"><textarea maxlength="2000" rows="3" class="form-control" style="font-size: 12px;width: 80%;resize:vertical;">'+t+'</textarea></div></div><div class="row" style="margin-top:5px;"<div class="col-md-6"><button class="btn btn-xs btn-grey cancel-btn">Cancel</button></div></div>');
});
$(document).on('click', '.cancel-btn', function()
{
$(thisElement).html(prevHtml);
$(thisElement).removeAttr('data-custom-status');
});
这是我的小提琴:https://jsfiddle.net/vsauhkfk/1/
点击,当我尝试工作点#4但后来好像什么也没有发生运输署。我在这里错过了什么?
啊太感谢你了!看起来几乎完美。只剩下1个问题。当我打开例如3 textareas,然后尝试取消第一个,它不起作用。我怀疑这是因为全局变量已经改变。任何治疗方法? –
检查这个小提琴:https://jsfiddle.net/vsauhkfk/4/我已经修复它,所以它不依赖于全局变量。我正在使用数据属性来包含原始文本。 –
并且如果您需要用用户键入的文本区域更新TD。看看这个小提琴:https://jsfiddle.net/vsauhkfk/6/。请注意,出于安全原因,我是html编码输入。 –