在JavaScript版经常看到有人关于在线可编辑表格的问题,于是整理了出来。
主要功能:
1.动态增加行
2.可以点击表格左边的按钮删除当前行,如果该行有数据会要求用户确认删除
3.表格可以实现动态编辑
4.通过点击某一行可以实现高亮度显示
源代码:
===================================
<HTML>
<HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<STYLE type=text/css>BODY {
BACKGROUND: white; COLOR: black; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px
}
.tableData {
BACKGROUND: white; BORDER-BOTTOM: white 1px dashed; BORDER-LEFT: white 1px dashed; BORDER-RIGHT: white 1px dashed; BORDER-TOP: white 1px dashed; COLOR: black; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px
}
.tableDataSel {
BACKGROUND: #6090d0; BORDER-BOTTOM: #6090d0 1px dashed; BORDER-LEFT: #6090d0 1px dashed; BORDER-RIGHT: #6090d0 1px dashed; BORDER-TOP: #6090d0 1px dashed; COLOR: white; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px
}
.tableDataHit {
BACKGROUND: #d0e0ff; BORDER-BOTTOM: #d0e0ff 1px dashed; BORDER-LEFT: #d0e0ff 1px dashed; BORDER-RIGHT: #d0e0ff 1px dashed; BORDER-TOP: #d0e0ff 1px dashed; COLOR: black; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px
}
.tableDataOver {
BACKGROUND: #d0e0ff; BORDER-BOTTOM: #d0e0ff 1px dashed; BORDER-LEFT: #d0e0ff 1px dashed; BORDER-RIGHT: #d0e0ff 1px dashed; BORDER-TOP: #d0e0ff 1px dashed; COLOR: black; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 12px
}
.controlPanel {
BACKGROUND: silver; COLOR: black; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 14px
}
.controlPanelMouseOver {
BACKGROUND: #d0e0ff; COLOR: black; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 14px
}
.delMouseOver {
BACKGROUND: #d0e0ff; COLOR: black; CURSOR: hand; FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 14px
}
.scheduleButtonVisible {
BACKGROUND: silver; BORDER-BOTTOM: gray 1px dashed; BORDER-LEFT: white 1px dashed; BORDER-RIGHT: gray 1px dashed; BORDER-TOP: white 1px dashed; COLOR: black; CURSOR: hand; FONT-FAMILY: webdings; FONT-SIZE: 12px
}
</STYLE>
<SCRIPT language=javascript>
var modified=0
var currentLine=-1//该变量似乎保存"ln"属性;lightOn函数中line记录实际行数
var line=-1;
function lightOn(ln)
{
if (ln==null)
ln=parseInt(event.srcElement.ln,10)
for (i=1;i<PLList.rows.length;i++)
if (tdt[i].ln==ln)
line=i
cln=currentLine
oldLine=-1
for (i=1;i<PLList.rows.length;i++)
if (tdt[i].ln==cln)
oldLine=i
if (line==oldLine)
return
//if td <0 then only clear all title
if (line>0)
{
document.all.tdt[line].className="tableDataHit";
document.ecform("date")[line].className="tableDataHit";
document.ecform("diagnosis")[line].className="tableDataHit";
document.ecform("medication")[line].className="tableDataHit";
if (oldLine>0)
{
document.all.tdt[oldLine].className="tableData";
document.ecform("date")[oldLine].className="tableData";
document.ecform("diagnosis")[oldLine].className="tableData";
document.ecform("medication")[oldLine].className="tableData";
}
currentLine=ln
}
}
function delIt()
{
line=parseInt(event.srcElement.ln,10)
if (line>0)
for (i=1;i<PLList.rows.length;i++)
if (tdt[i].ln==line)
{
if (document.ecform.diagnosis[i].value.length>0 || document.ecform.medication[i].value.length>0 || document.ecform.date[i].value.length>0)
if (!confirm("Are you sure you want to delete this record?"))
return
PLList.deleteRow(i)
}
}
function modifiedIt(field)
{
// field.value=checkText(field.value);
modified=1
line=parseInt(event.srcElement.ln,10)
if (line>0)
for (i=1;i<PLList.rows.length;i++)
if (tdt[i].ln==line)
document.ecform.edit[i].value=1
}
function newHospitalVisit()
{
newRow=PLList.insertRow(PLList.rows.length);
newRow.id="tdt";
newRow.ln=allCount;
newRow.bgColor="#e0e0e0";
newRow.className="tableData";
newRow.onclick=lightOn;
c1=newRow.insertCell(0);
c1.id="delItem";
c1.ln=allCount;
c1.className="scheduleButtonVisible";
c1.onclick=delIt;
c1.onmouseover=mouseOver;
c1.onmouseout=mouseOut;
c1.innerHTML="<input type=hidden name=PLID value=0><input type='hidden' name='edit' value=0>";
c2=newRow.insertCell(1);
c2.ln=allCount;
c2.innerHTML="<input type=text size=10 maxlength=10 name=date ln="+allCount+" class=tableData onkeyup='modifiedIt()'>"
c3=newRow.insertCell(2);
c3.ln=allCount;
c3.innerHTML="<input type=text size=25 maxlength=50 name=diagnosis ln="+allCount+" class=tableData onkeyup='modifiedIt()'>"
c4=newRow.insertCell(3);
c4.ln=allCount;
c4.innerHTML="<input type=text size=58 maxlength=100 name=medication ln="+allCount+" class=tableData onkeyup='modifiedIt()'>"
allCount++
}
function mouseOver()
{
event.srcElement.className="delMouseOver"
}
function mouseOut()
{
event.srcElement.className="scheduleButtonVisible"
}
</SCRIPT>
</HEAD>
<BODY bgColor=white>
<FORM method=post name=ecform>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<DIV id=div1
style="LEFT: 0px; POSITION: absolute; TOP: 0px; VISIBILITY: visible; WIDTH: 658px">
<TABLE bgColor=silver border=2 borderColorDark=gray borderColorLight=silver
cellPadding=2 cellSpacing=1 cols=1 id=PLList rules=rows width="100%">
<TBODY>
<TR bgColor=#0a6846 id=tdt>
<TH width=10><FONT color=white>X
<INPUT name=PLID type=hidden>
<INPUT
name=edit type=hidden>
</FONT></TH>
<TH width="10%">
<INPUT name=date type=hidden>
<FONT color=white>Date </FONT>
<TH width="30%">
<INPUT name=diagnosis type=hidden>
<FONT
color=white>Diagnosis </FONT>
<TH width="60%">
<INPUT name=medication type=hidden>
<FONT
color=white>Medication </font>
</TR>
<TR bgColor=#e0e0e0 class=tableData id=tdt onclick=lightOn() ln="1">
<TD class=scheduleButtonVisible onclick=delIt() onmouseout=mouseOut()
onmouseover=mouseOver() ln="1"><FONT size=2>
<INPUT name=PLID type=hidden
value=54 ln="1">
<INPUT name=edit type=hidden value=0>
</FONT></TD>
<TD ln="1">
<INPUT class=tableData maxLength=10 name=date
onkeyup=modifiedIt(this) size=10 ln="1">
</TD>
<TD ln="1">
<INPUT class=tableData maxLength=50 name=diagnosis
onkeyup=modifiedIt(this) size=25 value="what do you think of it?"
ln="1">
</TD>
<TD ln="1">
<INPUT class=tableData maxLength=100 name=medication
onkeyup=modifiedIt(this) size=58 value="like it?" ln="1">
</TD>
</TR>
<TR bgColor=#e0e0e0 class=tableData id=tdt onclick=lightOn() ln="2">
<TD class=scheduleButtonVisible onclick=delIt() onmouseout=mouseOut()
onmouseover=mouseOver() ln="2"><FONT size=2>
<INPUT name=PLID type=hidden
value=55 ln="2">
<INPUT name=edit type=hidden value=0>
</FONT></TD>
<TD ln="2">
<INPUT class=tableData maxLength=10 name=date
onkeyup=modifiedIt(this) size=10 value=01/01/1999 ln="2">
</TD>
<TD ln="2">
<INPUT class=tableData maxLength=50 name=diagnosis
onkeyup=modifiedIt(this) size=25 value="it`s a test" ln="2">
</TD>
<TD ln="2">
<INPUT class=tableData maxLength=100 name=medication
onkeyup=modifiedIt(this) size=58 value="how about it?" ln="2">
</TD>
</TR>
<TR bgColor=#e0e0e0 class=tableData id=tdt onclick=lightOn() ln="3">
<TD class=scheduleButtonVisible onclick=delIt() onmouseout=mouseOut()
onmouseover=mouseOver() ln="3"><FONT size=2>
<INPUT name=PLID type=hidden
value=56 ln="3">
<INPUT name=edit type=hidden value=0>
</FONT></TD>
<TD ln="3">
<INPUT class=tableData maxLength=10 name=date
onkeyup=modifiedIt(this) size=10 value=02/01/2000 ln="3">
</TD>
<TD ln="3">
<INPUT class=tableData maxLength=50 name=diagnosis
onkeyup=modifiedIt(this) size=25 value="another test" ln="3">
</TD>
<TD ln="3">
<INPUT class=tableData maxLength=100 name=medication
onkeyup=modifiedIt(this) size=58 ln="3">
</TD>
</TR>
</TBODY>
</TABLE>
<SCRIPT>
allCount=4
</SCRIPT>
<TABLE align=center border=1 borderColorDark=white borderColorLight=gray
cellPadding=1 cellSpacing=1 class=controlPanel cols=4 rules=all width="100%"
nowrap>
<TBODY>
<TR>
<TD align=middle class=controlPanel onclick=newHospitalVisit()
onmouseout="this.className='controlPanel'"
onmouseover="this.className='controlPanelMouseOver'"><FONT size=2>Add a New
Record, click here</FONT></TD>
</TR>
</TBODY>
</TABLE>
</DIV>
</FORM>
</BODY>
</HTML>
分享到:
相关推荐
本教程将探讨如何使用JavaScript实现在线编辑表格的功能,让用户能够直接在网页上对表格进行增删改查操作。 首先,我们需要一个HTML结构来展示表格。在HTML中,`<table>`元素用于创建表格,`<tr>`表示表格行,`<td>...
Kevin Roth’s Cross Browser Rich Text Editor是一个基于JavaScript实现的在线编辑器,支持多种浏览器和操作系统。Kevin Roth’s Cross Browser Rich Text Editor提供了许多插件和主题,用户可以根据需要进行自定义...
【myConsole:JavaScript实现的手机JavaScript编辑器】 myConsole是一款专为移动设备设计的轻量级JavaScript编辑器,它完全使用JavaScript语言编写,为开发者提供了一个便捷的在手机上编写、运行和测试JavaScript...
6. **事件监听与处理**:JavaScript通过addEventListener等方法监听用户的键盘输入、鼠标点击等事件,根据事件类型和参数执行相应的函数,实现编辑器的动态响应。 7. **跨平台兼容性**:由于不同的浏览器可能对...
javascript实现可编辑的下拉列表
在加载时,将JSON数据解析并恢复到组件状态,实现编辑器的保存和恢复工作流。 综上所述,基于Vue.js和JavaScript的数据大屏可视化编辑器设计与实现是一个综合性的项目,涉及前端框架的应用、数据处理、组件化编程、...
用arcgis api for javascript 3.23实现的简单编辑功能 能绘制点线面
JavaScript实现的编辑器在Web开发中扮演着至关重要的角色,特别是在Java Web开发中。这种编辑器通常被用作用户输入、代码编辑或者富文本处理的工具。JavaScript的强大在于它的跨平台性和灵活性,使得开发者能够创建...
用javascript实现的前台文本编辑器
3. **javascript**:与"js"相同,这里强调了JavaScript在实现在线编辑器中的核心地位。 4. **插件**:在线编辑器可能通过插件机制扩展功能,允许开发者添加自定义组件或整合第三方服务,如云存储、OCR识别等。 5. ...
1. **事件处理**:JavaScript通过事件监听来响应用户的键盘输入、鼠标点击等操作,实现编辑器的功能。 2. **DOM操作**:JavaScript可以修改HTML文档对象模型(DOM),动态更新编辑器内容,如插入、删除或替换文本。...
接下来,我们需要编写JavaScript代码来实现编辑器的功能。一个简单的实现可能包括以下步骤: 1. **事件监听**:使用`addEventListener()`函数监听用户的键盘输入和鼠标点击等事件。例如,监听`keyup`事件来实时更新...
这需要监听编辑器的事件,如`keyup`或`change`,并用JavaScript实现数据同步的逻辑。 5. **事件处理**:编辑器之间的交互可能会触发各种事件,比如复制、粘贴、撤销、重做等。需要编写事件处理函数来处理这些操作,...
1. **在线编辑**: PageOffice提供了JavaScript API,使得开发者可以将Word编辑功能集成到网页中。用户可以通过Web页面直接打开、编辑和保存Word文档,所有的操作都在服务器端完成,确保了数据的安全性。同时,Page...
【标题】"用JavaScript实现的留言板模块"是一个利用JavaScript编程语言构建的互动功能,它允许用户在网站上发表留言,包含表情、图片以及各种文字处理功能。JavaScript是一种轻量级的解释型编程语言,常用于网页和...
本项目利用JavaScript和JSTL(JavaServer Pages Standard Tag Library)技术实现了这样一个功能——“可编辑树”。下面将详细阐述这个知识点。 首先,JavaScript是一种广泛使用的客户端脚本语言,它在网页上运行,...
在Java开发中,实现在线编辑文档的功能是一项常见需求,例如在论坛、博客或者知识分享平台。KindEditor是一款流行的开源富文本编辑器,它提供了一种简单而强大的方式来实现这样的功能。本文将深入探讨如何在Java环境...
这个资源,"在线编辑表格 html格式可编辑表格 javascript编写",提供了一个使用HTML和JavaScript实现的简单可编辑表格。JavaScript是一种强大的客户端脚本语言,常用于增强网页的动态功能,而HTML则是网页内容的基础...
通过使用JavaScript,开发者可以构建功能丰富的在线文本编辑器,这些编辑器可以支持多种文本格式化选项,例如加粗、斜体、更改字体颜色等。 ### 二、JavaScript中的`document.execCommand()`方法 `document....
JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它主要负责实现客户端的交互功能,如表单验证、动态内容更新、用户界面交互等。在编程过程中,一个具备良好提示功能的JavaScript编辑器能极大地提高开发...