社区
JavaScript
帖子详情
不刷新页面,如何做到改变表格中行的编辑状态
dechon
2005-12-05 03:27:39
有一个TABLE,第一行是个Radio Button,,后面是一些显示的文本信息.在点击Radio Button后,将该行对应的文本变成TEXT框进行编辑(只有选中的行是可编辑的).以前做的是在点击按钮后进行提交刷新页面,现在改成不刷新页面,请问有什么好的实现方法?
...全文
285
12
打赏
收藏
不刷新页面,如何做到改变表格中行的编辑状态
有一个TABLE,第一行是个Radio Button,,后面是一些显示的文本信息.在点击Radio Button后,将该行对应的文本变成TEXT框进行编辑(只有选中的行是可编辑的).以前做的是在点击按钮后进行提交刷新页面,现在改成不刷新页面,请问有什么好的实现方法?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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结合起来了,选择文本,...
GridView的72般绝技
- **功能概述**:提供了一组用于处理GridView
中行
的操作,包括选中、
编辑
、取消
编辑
以及删除等操作。 - **实现方式**: - **选中**:通常通过绑定事件如`RowDataBound`来识别当前选中的行,并为其添加特殊样式或...
BOS常见问题.pptx
- 单据处于某种
状态
时不允许修改某些字段。 3. **单据类型锁定性:** - 某种类型的单据不允许修改特定字段。 4. **实体服务规则锁定:** - 根据实体服务规则限制字段的修改。 5. **单据视图中锁定:** - 在单据...
JavaScript
87,992
社区成员
224,698
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章