从单元格中删除输入元素,并在单元格或其他单元格外部单击时保留值
Remove input element from cell and preserve the value, when clicked outside of cell or another cell
我希望当我单击单元格外部或另一个单元格时,单元格中的输入元素消失(请注意,单击的单元格之后必须处于活动状态,具有输入元素)。并且单元格必须保持输入元素的值。
单击单元格时,必须显示输入元素(该部分已求解)。
.HTML:
<table>
<tr>
<td>Content</td>
<td>Content</td>
</tr>
<tr>
<td>Content</td>
<td>Content</td>
</tr>
</table>
JavaScript:
//this part creates input in td element, allows editing cell content and
//when enter is pressed removes input leaving the cell value (the okay part)
$("td").click(function(){
if($(this).find("input").length==0){
var cellContent = $(this).html();
$(this).empty();
$(this).append("<input type='text' size='"+cellContent.length+"' value='"+cellContent+"'>");
$(this).find("input").focus();
}
var currentCell = $(this);
$("input").keyup(function(event){
if(event.which == 13){//on enter pressed
$(this).remove();
$(currentCell).html($(this).val());
}
});
});
现在的问题是:
//Here every cell but the one clicked should behave just like the cell in
// which "enter" is pressed in previous part of the code
//I was trying smth here but I (amateur) got confused
$("*").click(function(){
for(var i=0;i<$("td input").length;i++){
if($(this).has("input")){
var cellValue = $("td input:eq("+ i +")").val();
var address = $("td input:eq("+ 0 +")").parent();
$("td input:eq("+ i +")").remove();
$(address).html(cellValue);
}
}
});
这是一个示例,我将如何做到这一点: JsFiddle
希望对您有所帮助。
.HTML:
<table>
<tr>
<td>Content <input type="text" class="hidden"></td>
<td>Content <input type="text" class="hidden"></td>
</tr>
<tr>
<td>Content <input type="text" class="hidden"></td>
<td>Content <input type="text" class="hidden"></td>
</tr>
</table>
.CSS:
.visible {
display: block;
}
.hidden {
display: none;
}
.JS:
var tds = $('td');
tds.click(function(){
var allInputs = tds.find('input');
var clickedInpit = $(this).find('input');
if (allInputs.hasClass('visible')) {
allInputs.removeClass('visible');
allInputs.addClass('hidden');
}
clickedInpit.addClass('visible');
clickedInpit.removeClass('hidden');
});
相关文章:
- 使用jquery在单击时在单元格中输入值
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 可以'我不明白为什么;t将行和单元格添加到表中
- 如何在Angular中的表的所有单元格中添加链接
- 表中单元格的总和
- ExtJS网格单元格编辑器,防止焦点松动问题
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 区分电子表格中的空单元格和0值
- ui网格将单元格显示为选择标记
- 单元格的工具提示或标题不显示超过2000个字符
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 允许表单元格内容水平展开
- 如何将jQuery/AAJAX结果放入表格单元格
- 使用jQuery只返回选中复选框后的第一个表单元格值
- jQuery-通过AJAX调用动态添加具有值的表单元格
- 需要将单元格值复制到html表中的其他单元格中
- 从Javascript中选定的行中获取特定单元格的值
- 使用JavaScript获取Gridview单元格值
- 使用外部 javascript 更改多个表格单元格中的文本
- 为表格单元格外部化ng-class