社区
JavaScript
帖子详情
不刷新页面,如何做到改变表格中行的编辑状态
dechon
2005-12-05 03:27:39
有一个TABLE,第一行是个Radio Button,,后面是一些显示的文本信息.在点击Radio Button后,将该行对应的文本变成TEXT框进行编辑(只有选中的行是可编辑的).以前做的是在点击按钮后进行提交刷新页面,现在改成不刷新页面,请问有什么好的实现方法?
...全文
278
12
打赏
收藏
不刷新页面,如何做到改变表格中行的编辑状态
有一个TABLE,第一行是个Radio Button,,后面是一些显示的文本信息.在点击Radio Button后,将该行对应的文本变成TEXT框进行编辑(只有选中的行是可编辑的).以前做的是在点击按钮后进行提交刷新页面,现在改成不刷新页面,请问有什么好的实现方法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dechon
2005-12-08
打赏
举报
回复
最终的解决参见:http://www.blogjava.net/dechon/archive/2005/12/08/22957.html
dechon
2005-12-07
打赏
举报
回复
已经解决了.马上结贴.
dechon
2005-12-07
打赏
举报
回复
最后采用的是meizz的方法.不过,也遇到很多问题.比如不是所有的列都变成可编辑状态,另外,如果显示的信息中含有HTML字符的话, 用a[k].outerHTML = a[k].value是有问题的.由于有一些验证是通过后台来完成的,在检验不通过的情况下还要保持提交前输入的值等等,不过最后还是搞定了.^_^
JK_10000
2005-12-05
打赏
举报
回复
<table border=1 width=100%>
<tr>
<td><input name=m type=checkbox onclick="mm(this)"></td>
<td>1111</td>
<td><input name=aaa value="222" disabled></td>
<td><input name=bbb value="333" disabled></td>
</tr>
<tr>
<td><input name=m type=checkbox onclick="mm(this)"></td>
<td>1111</td>
<td><input name=aaa value="222" disabled></td>
<td><input name=bbb value="333" disabled></td>
</tr>
<tr>
<td><input name=m type=checkbox onclick="mm(this)"></td>
<td>1111</td>
<td><input name=aaa value="222" disabled></td>
<td><input name=bbb value="333" disabled></td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
function mm(e)
{
var currentTr=e.parentElement.parentElement;
var inputObjs=currentTr.getElementsByTagName("input");
for(var i=0;i<inputObjs.length;i++)
{
if(inputObjs[i]==e) continue;
inputObjs[i].disabled=!e.checked;
}
}
</SCRIPT>
MrYou
2005-12-05
打赏
举报
回复
迷糊了,只读的不向后台传就可以了阿
dechon
2005-12-05
打赏
举报
回复
不是改不改的问题,是有的列不允许修改的,相当于是只读的.
MrYou
2005-12-05
打赏
举报
回复
关于有的改有的不改,懒人的办法是不管改没改,都用新的覆盖掉旧的 :)
dechon
2005-12-05
打赏
举报
回复
回: MrYou(菜鸟飞飞)
接下来就是可以更改可编辑部分的内容,然后就是提交到后台了.
dechon
2005-12-05
打赏
举报
回复
首先感谢上面两位的回答.
这样解决了将文本信息改变成编辑框,但文本中的信息是要提交的,如果将各个字段与FORM中对应起来?另外,一行中可能只有部分要改变编辑状态,有的列还是显示为文本不需要改变.是否每个单元格要做一下标记才能做到?
meizz
2005-12-05
打赏
举报
回复
<table border=1 width=100%>
<tr>
<td><input name=m type=radio onclick="mm(this)"></td>
<td>1111</td>
<td>2222</td>
<td>3333</td>
</tr>
<tr>
<td><input name=m type=radio onclick="mm(this)"></td>
<td>1111</td>
<td>2222</td>
<td>3333</td>
</tr>
<tr>
<td><input name=m type=radio onclick="mm(this)"></td>
<td>1111</td>
<td>2222</td>
<td>3333</td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
window.SearchByTagName = function(e, TAG)
{
while(e!=null && e.tagName){
if(e.tagName==TAG.toUpperCase()) return(e);
e = e.parentNode; } return null;
}
var _g = -1; //global
function mm(e)
{
var td = SearchByTagName(e, "TD");
var tr = td.parentNode;
var tab = SearchByTagName(tr, "TABLE");
if(_g>=0)
{
for(var i=td.cellIndex+1; i<tab.rows[_g].cells.length; i++)
{
var a = tab.rows[_g].cells[i].getElementsByTagName("INPUT");
for(var k=0; k<a.length; k++)
{
if(a[k].type=="text")
{
a[k].outerHTML = a[k].value; //就这句代码不能被非IE浏览器兼容
}
}
}
} _g = tr.rowIndex;
for(var i=td.cellIndex+1; i<tr.cells.length; i++)
{
tr.cells[i].innerHTML = "<input style='width: 100%' value='"+ tr.cells[i].innerHTML +"'>";
}
}
</SCRIPT>
harryCom
2005-12-05
打赏
举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
var row = -1;
function showEdit(obj){
var cell2 = obj.parentNode.parentNode.childNodes[1];
var rowIndex = obj.parentNode.parentNode.rowIndex;
cell2.innerHTML = "<input type='text' value='"+ cell2.innerHTML +"'>";
if(row != -1){
var oldCell2 = document.getElementById("tb").rows[row].cells[1];
oldCell2.innerHTML = oldCell2.childNodes[0].value;
}
row = rowIndex;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<TABLE id="tb">
<TR>
<TD><input type="radio" onclick="showEdit(this)" name="rad"></TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD><input type="radio" onclick="showEdit(this)" name="rad"></TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD><input type="radio" onclick="showEdit(this)" name="rad"></TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE>
</BODY>
</HTML>
MrYou
2005-12-05
打赏
举报
回复
一开始是个单元格?点中Radio Button后变成text框?然后呢?
70款经典Dreamweaver插件
alternate_table_rows 使
表格
中行
与行之间的背景色交替变换 print 支持三种打印页面连接,文字连接、图片连接 preloaddisplay 预先加载页面,如果你的网站下载的速度比较慢,用这个比较好。 swftext 将Drm和Flash...
Dreamweaver 插件集
使
表格
中行
与行之间的背景色交替变换 print 支持三种打印页面连接,文字连接、图片连接 preloaddisplay 预先加载页面,如果你的网站下载的速度比较慢,用这个比较好。 swftext 将Drm和Flash结合起来了,选择文本,...
JavaScript
87,915
社区成员
224,619
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章