页面里定义的所有的function对象全报缺少对象错误。。汗。。啊。。高手进 一般是语法问题,有语法问题的代码是不会解释的。重点检查括号配对与否,for里面的分号。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看过多遍了,老看不出来代码<html><head> <title> 用户迁移页面 </title></head><script language="javaScript">//颜色定义//没有操作时的颜色var blankColor = "#F7F7F7";//选中的颜色var selectedColor = "#DDDDDD";//操作完成的颜色var operatedColor = "#BABABA";//待操作行颜色var upoperateColor = "#CFCFCF";//输入格颜色var inputColor = "#EFEFEF";//---------用户属性操作的变量-----------/////var oa_cur_row;//外部属性表格当前行var ua_cur_row;//属性表格当前行var oa_cur_cell;//当前列(外部属性表格)var oa_cur_td;//之前操作的TDvar oat;//外部属性表格var uat;//属性表格//---------用户属性操作的方法-----------///function dbClickTd(){ event.cancelBubble = true; var ttd = event.srcElement; //TD if (ttd.tagName != "TD"){ if (ttd.tagName == "DIV"){ ttd = ttd.parentElement; } else{ return; } } var ttr = ttd.parentElement; //当前TR //可编辑选项打开并且当前行可编辑 var first_td = ttr.children[0]; var cur_sele = first_td.children[0]; if (cur_sele.value != "add"){ return; } oa_cur_td = ttd; //当前操作的TD oa_cur_cell = oa_cur_td.cellIndex; //当前列 oa_cur_row = ttr.rowIndex; //当前行 //用可编辑DIV层替换TD中原有文本 if (oa_cur_td.innerHTML.indexOf("div") < 0 || oa_cur_td.innerHTML.indexOf("DIV") < 0){ oa_cur_td.innerHTML = "<DIV>" + oa_cur_td.innerHTML + "</DIV>"; } oa_cur_td.children[0].contentEditable = true; with (oa_cur_td.runtimeStyle){ backgroundColor = inputColor; }}//单击表格事件function oaClickTable(){ event.cancelBubble = true; var srcEle = event.srcElement; if (srcEle.tagName == "TD"){ var ctr = srcEle.parentElement; if ((oa_cur_td != null) && (oa_cur_td.children[0] != null)){ if (oa_cur_td.children[0].contentEditable){ oa_cur_td.innerHTML = oa_cur_td.innerText; with (oa_cur_td.runtimeStyle){ backgroundColor = blankColor; } } } //将上一行的颜色改回 oat.children[oa_cur_row].style.backgroundColor = blankColor; //设置当前行 oa_cur_row = ctr.rowIndex; //改变当前行颜色 ctr.style.backgroundColor = selectedColor; }}// 保存用户要新增或修改的属性function saveAttr(){ //验证 if (!checkAttrs()) return; var addString = ""; var relationString = ""; var updateString = ""; //循环TR; for (var i = 1; i < oat.children.length; i++){ var ttr = oat.children[i]; //循环处理TD var sele = ttr.children[0].children[0]; //操作控件 if (sele.value == "none") continue; if (sele.value == "add"){ if (addString != "") addString += ","; addString += "field=" + ttr.children[1].innerText; addString += ";type=" + ttr.children[2].innerText; addString += ";length=" + ttr.children[3].innerText; addString += ";default=" + ttr.children[4].innerText; addString += ";attrId=" + ttr.children[5].innerText; addString += ";attrName=" + ttr.children[6].innerText; } else if (sele.value == "relation"){ //将保存的字段映射关系组成约定的字符串格式 if (relationString != "") relationString += ","; relationString += ttr.children[1].innerText + "-" + ttr.children[5].innerText; } else if (sele.value == "update"){ if (updateString != "") updateString += ","; updateString += ttr.children[1].innerText + "-" + ttr.children[5].innerText; } } if (updateString == "" && relationString == "" && addString == ""){ alert("没有要更新的属性。"); return; } document.attrOperateForm.addString.value = addString; document.attrOperateForm.relationString.value = relationString; document.attrOperateForm.updateString.value = updateString; document.attrOperateForm.submit();}//属性操作改变事件function changeOperateAttr(oldValue,sele){ var newValue = sele.value; //如果不改为要修改对应关系,则不作处理 if (oldValue == newValue) return; var ttd = sele.parentElement; var ttr = ttd.parentElement; //清空数据 ttr.children[5].innerText = " "; ttr.children[6].innerText = " "; oa_cur_row = ttr.rowIndex; if (newValue == "relation" || newValue == "update"){ ttr.style.backgroundColor = upoperateColor; alert("请在用户属性中选择一条信息与此字段关联。"); } else if (newValue == "add"){ //检验属性表格,若有相同的字段名,则不允许为新增 var field_name = ttr.children[1].innerText; field_name = field_name.toUpperCase(); //循环属性表格 for (var i = 0; i < uat.children.length; i++){ var t_field = uat.children[i].innerText; if (field_name == t_field.toUpperCase()){ alert("字段名 " + field_name + " 重复,不能新增。"); sele.value = oldValue; break; } } }} 我这边的开发工具也检查不出语法错误 代码2://验证属性表格中的数据function checkAttrs(){ //循环验证 var ttr; var operate; var value = ""; for (var i = 1; i < oat.children.length; i++){ ttr = oat.children[i]; operate = ttr.children[0].children[0].value; //如果有字段选择为不操作,警告 if (operate == "none"){ if (!confirm("如果将字段选择为不操作,将在您原有系统与中无法使用这个属性。请确定要废弃这个属性! 第" + (i + 1) + "行!")){ return false; } } //如果是新增,则做不能为空的检验,并为ATTRID做有效性验证 if (operate == "add"){ //属性编码 value = ttr.children[5].innerText; //去掉空格 value = trimSpace(value); ttr.children[5].innerText = value; var patrn = /^(\w){1,20}$/; if (!patrn.test(value)){ alert("新增属性的属性编码不合法:不能为空,不能超过20位,以字母和数字组成。第 " + (i) + " 行:" + value); return false; } //属性名称 value = ttr.children[6].innerText; //去掉空格 value = trimSpace(value); ttr.children[6].innerText = value; if (value == null || value == "" || value.length > 20){ alert("新增属性的属性名称不合法:不能为空,不能超过20位。第 " + (i) + " 行:" + + value); return false; } } } //检查必须映射的字段是否已经映射完成 var needattrs = "userId,username,password".split(","); var isExist = false; for (var i = 0; i < needattrs.length; i++){ isExist = false; var f = needattrs[i]; for (var j = 1; j < oat.children.length; j++){ var of = oat.children[j].children[5].innerText; if (f == of){ isExist = true; break; } } if (!isExist){ alert("必要属性 " + f + " 没有被映射。不能保存。"); return false; } } return true;}//用户表格的表格行的单击操作function uaClickTable(){ var srcEle = event.srcElement; var ctr; //TR if (srcEle.tagName == "TD"){ ctr = srcEle.parentElement; //将之前的TR颜色改回 var ptr = uat.children[ua_cur_row]; ptr.style.backgroundColor = blankColor; ctr.style.backgroundColor = selectedColor; //新的当前行 ua_cur_row = ctr.rowIndex; //找到当前外部属性表格的当前操作行 var current_tr = oat.children[oa_cur_row]; //如果不是关联,则不做处理 if (current_tr.children[0].children[0].value != "relation" && current_tr.children[0].children[0].value != "update"){ return; } var attr_id = ctr.children[4].innerText; var attr_name = ctr.children[5].innerText; //如果已经存在这个ATTRID的映射,则不做处理 var isExist = false; var oatbody = current_tr.parentElement; for (var i = 1; i < oatbody.children.length; i++){ if (oatbody.children[i].children[5].innerText == attr_id){ isExist = true; break; } } //不存在已有的映射,赋值 if (!isExist){ current_tr.children[5].innerText = attr_id; current_tr.children[6].innerText = attr_name; current_tr.style.backgroundColor = operatedColor; } }}//完成字段映射function finishedFieldMap(){ if (!confirm("字段映射完成之后将不可更改,请确认映射完成。并进行用户的迁移操作。")) return; document.attrOperateForm.action = "userTransferAction.do?action=finishMap"; document.attrOperateForm.submit();}//---------用户操作的变量--------////-------用户操作部分函数-----------////外部用户表格var out;//用户表格var uut;//user操作的当前行var ou_cur_row;//当前用户表格行var uu_cur_row;//uums中的用户,用TR对象存储var uums_users_trs;//uums表格userId的所在列var uid_cell;//uums表格username的所在列var uname_cell;//用户ID的列var oid_cell;//用户名的列var oname_cell;//要更新的用户的字符串var updateUserString = "";//------------用户操作的方法----------------/////改变用户操作事件function changeOperateUser(oldValue,sele){ var newValue = sele.value; if (oldValue == newValue) return; //如果是新增 var current_tr = sele.parentElement.parentElement; if (newValue == "1"){ //如果已经有了对应关系,则删除 current_tr.children[1].innerText = ""; } else if (newValue == "2"){ //如果是关联 alert("请选择中的用户与之对应!"); } else if (newValue == "3"){ if (!confirm("如果选择不操作此用户将不会被迁移,请确认不迁移这个用户。")){ sele.value = oldValue; } }}//TR改变方法function ouRowClick(tr){ alert("ouRowClick(tr)"); var current_tr = out.children[ou_cur_row]; current_tr.style.background = blankColor; //如果未改变的当前行选中为更新,但又没有表的记录与之映射,则将其设为未选择操作 if (current_tr.children[0].children[0].value == "2" && current_tr.children[1].innerText == ""){ alert("第 " + ou_cur_row + " 行没有确定要更新的用户,操作无效。"); current_tr.children[0].value = "0"; } ou_cur_row = tr.rowIndex; tr.style.backgroundColor = selectedColor; alert(oid_cell); var userId = tr.children[oid_cell].innerText; var userName = tr.children[oname_cell].innerText; //过滤用户 uumsUserFilter(userId,userName);}//用户表格过滤方法function uumsUserFilter(userId,userName){ var matchTrs new Array(); var j = 0; //从缓存中查找相似的记录 for (var i = 0; i < uums_users_trs.length; i++){ var ttr = uums_users_trs[i]; var user_id = ttr.children[uid_cell].innerText; var user_name = ttr.children[uname_cell].innerText; if (user_id == "userId" || user_name == "username"){ matchTrs[j++] = ttr; } } //删除表格中原来的数据 for (var i = 0; i < uut.children.length; i++){ uut.removeChild(uut.children[i]); i--; } //将查询到的结果加入表中显示 for (var i = 0; i < matchTrs.length; i++){ uut.insertRow(matchTrs(i)); }} 代码3:汗。。太长了//初始化方法,取得userId,userName在表格中的位置,以便于查询//将用户表格的数据缓存,用来过滤function init(){ alert("init start"); uums_users_trs = new Array(); //用户表格 out = document.getElementById("outerUserTable").children[0]; uut = document.getElementById("uumsUserTable").children[0]; //属性表格 oat = document.getElementById("outerAttrTable").children[0]; uat = document.getElementById("uumsAttrTable").children[0]; //将表缓存 for (var i = 1; i < uut.children.length; i++){ uums_users_trs[i - 1] = uut.children[i]; } //确定userId与username在表格中的位置 var outhead = out.children[0]; alert(out.tagName); for (var i = 0; i < outhead.children.length; i++){ var td = outhead.children[i]; if (td.innerText == "userId"){ oid_cell = i; continue; } if (td.innerText == "username"){ oname_cell = i; } } //确定中userId所有列 var uuthead = uut.children[0]; for (var i = 0; i < uuthead.children.length; i++){ var td = uuthead.children[i]; if (td.innerText == "userId"){ uid_cell = i; continue; } if(td.innerText == "username"){ uname_cell = i; } } //设置当前行 oa_cur_row = 1; ua_cur_row = 1; ou_cur_row = 1; alert("init end"); // var current_tr = out.children[ou_cur_row];}//去除字符串的空格function trimSpace(str){ var tv = ""; for (var j = 0; j < str.length; j++){ if (str.charAt(j) != ' '){ tv += str.charAt(j); } } return tv;}</script><body bgcolor="#ffffff"><form method="post" action="userTransferAction.do?action=changeApp" name="appForm"> <table width="92%" align="center"> <tr> <td width="20%">请选择应用系统:</td> <td width="80%"><select name="app" onchange="if(this.value != '')document.appForm.submit();"> <option value="">未选择</option> <option value="2">测试</option> </select></td> </tr> </table></form><form name="attrOperateForm" action="userTransferAction.do?action=updateAttr" method="post"> <table border="1" width="96%" align="right"> <tr> <td width="50%" valign="top" >新系统用户表信息</td> <td width="50%" valign="top">系统用户表信息</td> </tr> <tr> <td width="50%" valign="top"> <table id="outerAttrTable" border="1" width="100%" onclick="oaClickTable();"> <tr> <td>操作</td> <td>老字段</td> <td>老字段类型</td> <td>新字段</td> <td>新字段类型</td> <td>字段编码</td> <td>字段说明</td> </tr> <tr> <td> <select name="attrOperate2" disabled="true"> <option value="none">None</option> <option value="relation">修改</option> </select> </td> <td>age</td> <td>int</td> <td>age</td> <td>int</td> <td>age</td> <td>age</td> </tr> </table> </td> <td width="50%" valign="top"> <table id="uumsAttrTable" border="1" width="100%" onclick="uaClickTable();"> <tr> <td>字段名</td> <td>字段类型</td> <td>长度</td> <td>默认值</td> <td>字段编码</td> <td>字段说明</td> </tr> <tr> <td>PASSWORD</td> <td>VARCHAR</td> <td>50</td> <td></td> <td>password</td> <td>密码</td> </tr> </table> </td> </tr> <tr> <td> </td> <td> <input type="hidden" name="addString"/> <input type="hidden" name="updateString"/> <input type="hidden" name="relationString"/> </td> </tr> </table></form> <script language="JavaScript"> document.attrOperateForm.butSave.disabled = "true"; document.attrOperateForm.butReset.disabled = "true"; document.attrOperateForm.butFinish.disabled = "true"; </script><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><form action="userTransferAction.do?action=getUser" name="getUserForm" method="post"><table border="1" align="right" width="96%"> <tr> <td width="50%">请输入要迁移用户的条件:<input type="text" size="40" name="sqlWhere"/> </td> <td width="50%"><input type="button" value="获取用户" onclick="document.getUserForm.submit();"/> </td> </tr></table></form> <br><br><br><form name="userTransferForm" action="userTransferAction.do?action=updateUser" method="post"> <table border="1" align="right" width="96%"> <tr width="50%"> <td valign="top"> <table id="outerUserTable" width="100%" border="1"> <tr> <td>请选择操作</td> <td>关联用户(ID)</td> <td>bir</td> <td>age</td> <td>password</td> <td>userId</td> <td>username</td> <td>id</td> </tr> </table> </td> </table> </td> </tr> </table></form><script language="javascript"> alert("asdaa"); init();</script></body> Amwpfiqvy:这个不需要检查哈,之前都可以运行,改了几行代码突然不行了。。就是自己都不记得改的哪里了。 感谢各位。。问题找到了。。晕菜var matchTrs new Array(); JS的问题,小问题,速来抢分! js新手 借问高手如何学JS 到底路该怎么走 JS写法的问题....你更倾向哪一种.. document.getElementsByName小问题 id和name通用么?? 最近升3*了,老样子,发点东西,再加散分(autocomplete+customlayout) 大神求救正则表达式 超变态的问题,我搞晕了,框架问题,100分啊 dullwolf(超级大笨狼) 对"点击页面出现文本框"的回复,我想生成下拉框 Javascript如何实现页面快速多样式变换 帮偶看看咋回事呀? 有一个显示层的程序,但是点击执行后,浏览器的滚动条总是滚动最上方,该怎么修改
代码<html>
<head>
<title>
用户迁移页面
</title>
</head>
<script language="javaScript">
//颜色定义
//没有操作时的颜色
var blankColor = "#F7F7F7";
//选中的颜色
var selectedColor = "#DDDDDD";
//操作完成的颜色
var operatedColor = "#BABABA";
//待操作行颜色
var upoperateColor = "#CFCFCF";
//输入格颜色
var inputColor = "#EFEFEF";
//---------用户属性操作的变量-----------/////
var oa_cur_row;
//外部属性表格当前行
var ua_cur_row;
//属性表格当前行
var oa_cur_cell;
//当前列(外部属性表格)
var oa_cur_td;
//之前操作的TD
var oat;
//外部属性表格
var uat;
//属性表格
//---------用户属性操作的方法-----------///
function dbClickTd(){
event.cancelBubble = true;
var ttd = event.srcElement;
//TD
if (ttd.tagName != "TD"){
if (ttd.tagName == "DIV"){
ttd = ttd.parentElement;
} else{
return;
}
}
var ttr = ttd.parentElement;
//当前TR
//可编辑选项打开并且当前行可编辑
var first_td = ttr.children[0];
var cur_sele = first_td.children[0];
if (cur_sele.value != "add"){
return;
}
oa_cur_td = ttd;
//当前操作的TD
oa_cur_cell = oa_cur_td.cellIndex;
//当前列
oa_cur_row = ttr.rowIndex;
//当前行
//用可编辑DIV层替换TD中原有文本
if (oa_cur_td.innerHTML.indexOf("div") < 0 || oa_cur_td.innerHTML.indexOf("DIV") < 0){
oa_cur_td.innerHTML = "<DIV>" + oa_cur_td.innerHTML + "</DIV>";
}
oa_cur_td.children[0].contentEditable = true;
with (oa_cur_td.runtimeStyle){
backgroundColor = inputColor;
}
}
//单击表格事件
function oaClickTable(){
event.cancelBubble = true;
var srcEle = event.srcElement;
if (srcEle.tagName == "TD"){
var ctr = srcEle.parentElement;
if ((oa_cur_td != null) && (oa_cur_td.children[0] != null)){
if (oa_cur_td.children[0].contentEditable){
oa_cur_td.innerHTML = oa_cur_td.innerText;
with (oa_cur_td.runtimeStyle){
backgroundColor = blankColor;
}
}
}
//将上一行的颜色改回
oat.children[oa_cur_row].style.backgroundColor = blankColor;
//设置当前行
oa_cur_row = ctr.rowIndex;
//改变当前行颜色
ctr.style.backgroundColor = selectedColor;
}
}
// 保存用户要新增或修改的属性
function saveAttr(){
//验证
if (!checkAttrs()) return;
var addString = "";
var relationString = "";
var updateString = "";
//循环TR;
for (var i = 1; i < oat.children.length; i++){
var ttr = oat.children[i];
//循环处理TD
var sele = ttr.children[0].children[0];
//操作控件
if (sele.value == "none") continue;
if (sele.value == "add"){
if (addString != "") addString += ",";
addString += "field=" + ttr.children[1].innerText;
addString += ";type=" + ttr.children[2].innerText;
addString += ";length=" + ttr.children[3].innerText;
addString += ";default=" + ttr.children[4].innerText;
addString += ";attrId=" + ttr.children[5].innerText;
addString += ";attrName=" + ttr.children[6].innerText;
} else if (sele.value == "relation"){ //将保存的字段映射关系组成约定的字符串格式
if (relationString != "") relationString += ",";
relationString += ttr.children[1].innerText + "-" + ttr.children[5].innerText;
} else if (sele.value == "update"){
if (updateString != "") updateString += ",";
updateString += ttr.children[1].innerText + "-" + ttr.children[5].innerText;
}
}
if (updateString == "" && relationString == "" && addString == ""){
alert("没有要更新的属性。");
return;
}
document.attrOperateForm.addString.value = addString;
document.attrOperateForm.relationString.value = relationString;
document.attrOperateForm.updateString.value = updateString;
document.attrOperateForm.submit();
}
//属性操作改变事件
function changeOperateAttr(oldValue,sele){
var newValue = sele.value;
//如果不改为要修改对应关系,则不作处理
if (oldValue == newValue) return;
var ttd = sele.parentElement;
var ttr = ttd.parentElement;
//清空数据
ttr.children[5].innerText = " ";
ttr.children[6].innerText = " ";
oa_cur_row = ttr.rowIndex;
if (newValue == "relation" || newValue == "update"){
ttr.style.backgroundColor = upoperateColor;
alert("请在用户属性中选择一条信息与此字段关联。");
} else if (newValue == "add"){
//检验属性表格,若有相同的字段名,则不允许为新增
var field_name = ttr.children[1].innerText;
field_name = field_name.toUpperCase();
//循环属性表格
for (var i = 0; i < uat.children.length; i++){
var t_field = uat.children[i].innerText;
if (field_name == t_field.toUpperCase()){
alert("字段名 " + field_name + " 重复,不能新增。");
sele.value = oldValue;
break;
}
}
}
}
代码2://验证属性表格中的数据
function checkAttrs(){
//循环验证
var ttr;
var operate;
var value = "";
for (var i = 1; i < oat.children.length; i++){
ttr = oat.children[i];
operate = ttr.children[0].children[0].value;
//如果有字段选择为不操作,警告
if (operate == "none"){
if (!confirm("如果将字段选择为不操作,将在您原有系统与中无法使用这个属性。请确定要废弃这个属性! 第" + (i + 1) + "行!")){
return false;
}
}
//如果是新增,则做不能为空的检验,并为ATTRID做有效性验证
if (operate == "add"){
//属性编码
value = ttr.children[5].innerText;
//去掉空格
value = trimSpace(value);
ttr.children[5].innerText = value;
var patrn = /^(\w){1,20}$/;
if (!patrn.test(value)){
alert("新增属性的属性编码不合法:不能为空,不能超过20位,以字母和数字组成。第 " + (i) + " 行:" + value);
return false;
}
//属性名称
value = ttr.children[6].innerText;
//去掉空格
value = trimSpace(value);
ttr.children[6].innerText = value;
if (value == null || value == "" || value.length > 20){
alert("新增属性的属性名称不合法:不能为空,不能超过20位。第 " + (i) + " 行:" + + value);
return false;
}
}
}
//检查必须映射的字段是否已经映射完成
var needattrs = "userId,username,password".split(",");
var isExist = false;
for (var i = 0; i < needattrs.length; i++){
isExist = false;
var f = needattrs[i];
for (var j = 1; j < oat.children.length; j++){
var of = oat.children[j].children[5].innerText;
if (f == of){
isExist = true;
break;
}
}
if (!isExist){
alert("必要属性 " + f + " 没有被映射。不能保存。");
return false;
}
}
return true;
}
//用户表格的表格行的单击操作
function uaClickTable(){
var srcEle = event.srcElement;
var ctr;
//TR
if (srcEle.tagName == "TD"){
ctr = srcEle.parentElement;
//将之前的TR颜色改回
var ptr = uat.children[ua_cur_row];
ptr.style.backgroundColor = blankColor;
ctr.style.backgroundColor = selectedColor;
//新的当前行
ua_cur_row = ctr.rowIndex;
//找到当前外部属性表格的当前操作行
var current_tr = oat.children[oa_cur_row];
//如果不是关联,则不做处理
if (current_tr.children[0].children[0].value != "relation" && current_tr.children[0].children[0].value != "update"){
return;
}
var attr_id = ctr.children[4].innerText;
var attr_name = ctr.children[5].innerText;
//如果已经存在这个ATTRID的映射,则不做处理
var isExist = false;
var oatbody = current_tr.parentElement;
for (var i = 1; i < oatbody.children.length; i++){
if (oatbody.children[i].children[5].innerText == attr_id){
isExist = true;
break;
}
}
//不存在已有的映射,赋值
if (!isExist){
current_tr.children[5].innerText = attr_id;
current_tr.children[6].innerText = attr_name;
current_tr.style.backgroundColor = operatedColor;
}
}
}
//完成字段映射
function finishedFieldMap(){
if (!confirm("字段映射完成之后将不可更改,请确认映射完成。并进行用户的迁移操作。")) return;
document.attrOperateForm.action = "userTransferAction.do?action=finishMap";
document.attrOperateForm.submit();
}
//---------用户操作的变量--------//
//-------用户操作部分函数-----------//
//外部用户表格
var out;
//用户表格
var uut;
//user操作的当前行
var ou_cur_row;
//当前用户表格行
var uu_cur_row;
//uums中的用户,用TR对象存储
var uums_users_trs;
//uums表格userId的所在列
var uid_cell;
//uums表格username的所在列
var uname_cell;
//用户ID的列
var oid_cell;
//用户名的列
var oname_cell;
//要更新的用户的字符串
var updateUserString = "";
//------------用户操作的方法----------------//
///改变用户操作事件
function changeOperateUser(oldValue,sele){
var newValue = sele.value;
if (oldValue == newValue) return;
//如果是新增
var current_tr = sele.parentElement.parentElement;
if (newValue == "1"){
//如果已经有了对应关系,则删除
current_tr.children[1].innerText = "";
} else if (newValue == "2"){ //如果是关联
alert("请选择中的用户与之对应!");
} else if (newValue == "3"){
if (!confirm("如果选择不操作此用户将不会被迁移,请确认不迁移这个用户。")){
sele.value = oldValue;
}
}
}
//TR改变方法
function ouRowClick(tr){
alert("ouRowClick(tr)");
var current_tr = out.children[ou_cur_row];
current_tr.style.background = blankColor;
//如果未改变的当前行选中为更新,但又没有表的记录与之映射,则将其设为未选择操作
if (current_tr.children[0].children[0].value == "2" && current_tr.children[1].innerText == ""){
alert("第 " + ou_cur_row + " 行没有确定要更新的用户,操作无效。");
current_tr.children[0].value = "0";
}
ou_cur_row = tr.rowIndex;
tr.style.backgroundColor = selectedColor;
alert(oid_cell);
var userId = tr.children[oid_cell].innerText;
var userName = tr.children[oname_cell].innerText;
//过滤用户
uumsUserFilter(userId,userName);
}
//用户表格过滤方法
function uumsUserFilter(userId,userName){
var matchTrs new Array();
var j = 0;
//从缓存中查找相似的记录
for (var i = 0; i < uums_users_trs.length; i++){
var ttr = uums_users_trs[i];
var user_id = ttr.children[uid_cell].innerText;
var user_name = ttr.children[uname_cell].innerText;
if (user_id == "userId" || user_name == "username"){
matchTrs[j++] = ttr;
}
}
//删除表格中原来的数据
for (var i = 0; i < uut.children.length; i++){
uut.removeChild(uut.children[i]);
i--;
}
//将查询到的结果加入表中显示
for (var i = 0; i < matchTrs.length; i++){
uut.insertRow(matchTrs(i));
}
}
汗。。太长了//初始化方法,取得userId,userName在表格中的位置,以便于查询
//将用户表格的数据缓存,用来过滤
function init(){
alert("init start");
uums_users_trs = new Array();
//用户表格
out = document.getElementById("outerUserTable").children[0];
uut = document.getElementById("uumsUserTable").children[0];
//属性表格
oat = document.getElementById("outerAttrTable").children[0];
uat = document.getElementById("uumsAttrTable").children[0];
//将表缓存
for (var i = 1; i < uut.children.length; i++){
uums_users_trs[i - 1] = uut.children[i];
}
//确定userId与username在表格中的位置
var outhead = out.children[0]; alert(out.tagName);
for (var i = 0; i < outhead.children.length; i++){
var td = outhead.children[i];
if (td.innerText == "userId"){
oid_cell = i;
continue;
}
if (td.innerText == "username"){
oname_cell = i;
}
}
//确定中userId所有列
var uuthead = uut.children[0];
for (var i = 0; i < uuthead.children.length; i++){
var td = uuthead.children[i];
if (td.innerText == "userId"){
uid_cell = i;
continue;
}
if(td.innerText == "username"){
uname_cell = i;
}
}
//设置当前行
oa_cur_row = 1;
ua_cur_row = 1;
ou_cur_row = 1;
alert("init end");
// var current_tr = out.children[ou_cur_row];
}
//去除字符串的空格
function trimSpace(str){
var tv = "";
for (var j = 0; j < str.length; j++){
if (str.charAt(j) != ' '){
tv += str.charAt(j);
}
}
return tv;
}
</script>
<body bgcolor="#ffffff">
<form method="post" action="userTransferAction.do?action=changeApp" name="appForm">
<table width="92%" align="center">
<tr>
<td width="20%">请选择应用系统:</td>
<td width="80%"><select name="app" onchange="if(this.value != '')document.appForm.submit();">
<option value="">未选择</option>
<option value="2">测试</option>
</select></td>
</tr>
</table>
</form>
<form name="attrOperateForm" action="userTransferAction.do?action=updateAttr" method="post">
<table border="1" width="96%" align="right">
<tr>
<td width="50%" valign="top" >新系统用户表信息</td>
<td width="50%" valign="top">系统用户表信息</td>
</tr>
<tr>
<td width="50%" valign="top">
<table id="outerAttrTable" border="1" width="100%" onclick="oaClickTable();">
<tr>
<td>操作</td>
<td>老字段</td>
<td>老字段类型</td>
<td>新字段</td>
<td>新字段类型</td>
<td>字段编码</td>
<td>字段说明</td>
</tr>
<tr>
<td>
<select name="attrOperate2" disabled="true">
<option value="none">None</option>
<option value="relation">修改</option>
</select>
</td>
<td>age</td>
<td>int</td>
<td>age</td>
<td>int</td>
<td>age</td>
<td>age</td>
</tr>
</table>
</td>
<td width="50%" valign="top">
<table id="uumsAttrTable" border="1" width="100%" onclick="uaClickTable();">
<tr>
<td>字段名</td>
<td>字段类型</td>
<td>长度</td>
<td>默认值</td>
<td>字段编码</td>
<td>字段说明</td>
</tr>
<tr>
<td>PASSWORD</td>
<td>VARCHAR</td>
<td>50</td>
<td></td>
<td>password</td>
<td>密码</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="hidden" name="addString"/>
<input type="hidden" name="updateString"/>
<input type="hidden" name="relationString"/>
</td>
</tr>
</table>
</form>
<script language="JavaScript">
document.attrOperateForm.butSave.disabled = "true";
document.attrOperateForm.butReset.disabled = "true";
document.attrOperateForm.butFinish.disabled = "true";
</script>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<form action="userTransferAction.do?action=getUser" name="getUserForm" method="post">
<table border="1" align="right" width="96%">
<tr>
<td width="50%">请输入要迁移用户的条件:<input type="text" size="40" name="sqlWhere"/> </td>
<td width="50%"><input type="button" value="获取用户" onclick="document.getUserForm.submit();"/> </td>
</tr>
</table>
</form>
<br><br><br>
<form name="userTransferForm" action="userTransferAction.do?action=updateUser" method="post">
<table border="1" align="right" width="96%">
<tr width="50%">
<td valign="top">
<table id="outerUserTable" width="100%" border="1">
<tr>
<td>请选择操作</td>
<td>关联用户(ID)</td>
<td>bir</td>
<td>age</td>
<td>password</td>
<td>userId</td>
<td>username</td>
<td>id</td>
</tr>
</table>
</td>
</table>
</td>
</tr>
</table>
</form>
<script language="javascript">
alert("asdaa");
init();
</script>
</body>
这个不需要检查哈,之前都可以运行,改了几行代码突然不行了。。
就是自己都不记得改的哪里了。
问题找到了。。晕菜
var matchTrs new Array();