Jquery动态字段生成器
| S.No |名称| Button1的| Button2的|
点击第一个按钮S.No标签和名称标签应该像文本框一样启用。
它的工作方式就像魅力一样,但如果我点击第二个按钮,该字段是可编辑的,但第一个字段也可以编辑,不会重置为早期状态(标记)
如果点击第二个或任何按钮,则所有内容都会重新显示为原始形式
下图:
function asd(dt1)
{
var id = $("#id"+dt1).text();
var x ='<input type="text" value="'+id+'" id="txtUpdateSno'+dt1+'" size="1" readonly="readonly">';
$("#id"+dt1).html(x);
var name = $("#name"+dt1).text();
var x ='<input type="text" value="'+name+'" id="txtUpdateName'+dt1+'">';
$("#name"+dt1).html(x);
$("#btnEdit"+dt1).hide();
$("#btnDelete"+dt1).hide();
$("#trTxtInsert").hide();
$("#btnUpdate"+dt1).show();
$("#btnCancel"+dt1).show();
}
答案 0 :(得分:0)
如果您在用户尝试编辑其他行时需要返回不可编辑的数据,那么您必须做两件事:
在td
内插入数据(名称和ID),例如:
<td id="id1"><span class="dataCache">8</span></td>
<td id="name1"><span class="dataCache">LLL</span></td>
并且当用户点击“编辑”按钮时隐藏此元素并使用append
te输入而不是.html()
:
var id = $("#id"+dt1).text();
$("#id"+dt1).append('<input type="text" value="'+id+'" id="txtUpdateSno'+dt1+'" size="1" readonly="readonly">');
$("#id"+dt1+" .cacheData").hide();
var name = $("#name"+dt1).text();
$("#name"+dt1).html('<input type="text" value="'+name+'" id="txtUpdateName'+dt1+'">');
$("#name"+dt1+" .cacheData").hide(); // edit
如果有人点击“取消”按钮,请删除输入并.show()
.cacheData
元素。
为了帮助您重置编辑行,请在您编辑的行上添加一个类:
$("#id"+dt1).parents("tr").addClass("editing");
并在cancel
函数中删除此类。
如果某个用户在没有edit
或save
的其他行上点击cancel
,则需要强制点击“编辑模式”中行的取消按钮:
Secondo:在您的asd
函数中添加此行,如果有一些并且强制edit mode
按钮单击,则会找到cancel
中的行。
$(".editing .yourgeneralclassofcancelbutton").trigger("click");
我创建了一个示例,通过新的HTML和新的JS向您展示代码的替代方案,看看:http://jsfiddle.net/Frogmouth/rbkxcs47/。 (为你的灵感)
创建一个例外,控制是否有某些“tr”处于“编辑模式”,如果有一个“tr”则忽略编辑操作。
function asd(dt1)
{
if($("tr.editing").length > 0) return false; //some other is in edit mode, do nothing.
$("#id"+dt1).parents("tr").addClass("editing"); //add editing
var id = $("#id"+dt1).text();
$("#id"+dt1).append('<input type="text" value="'+id+'" id="txtUpdateSno'+dt1+'" size="1" readonly="readonly">');
$("#id"+dt1+" .cacheData").hide();
var name = $("#name"+dt1).text();
$("#name"+dt1).html('<input type="text" value="'+name+'" id="txtUpdateName'+dt1+'">');
$("#name"+dt1+" .cacheData").hide(); // edit
$("#btnEdit"+dt1).hide();
$("#btnDelete"+dt1).hide();
$("#trTxtInsert").hide();
$("#btnUpdate"+dt1).show();
$("#btnCancel"+dt1).show();
}
或者,如果你跟着我的小提琴,我会创建一个新的更新版本:http://jsfiddle.net/Frogmouth/rbkxcs47/1/