+ -
当前位置:首页 → 问答吧 → DWRUtil.addrows添加内容后如何用js来编辑

DWRUtil.addrows添加内容后如何用js来编辑

时间:2010-10-12

来源:互联网

我用DWRUtil.addrows在页面重新填充新的数据后,原来对该form中的数据进行操作的js都失效了,哪位大哥有过处理类似的经验能告诉我一下,先谢谢了!
我要做的操作就是对新添加的内容前的checkbox进行全选操作.
js代码实现全选:
function check(field) {

if(typeof(field)!="undefined"){

if (typeof(field.length)=="undefined"){

if (checkflag == "false"){
field.checked=true;
checkflag = "true";
return false; 
}
else{
field.checked=false;
checkflag = "false";
return "true";
}
}

if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return false; 
}else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return "true";
}

}
}
----------------------------------------------------------------------------
dwr代码实现动态添加新数据:
function classifyByAlphabet(o){
document.getElementById("searchName").value="";
document.getElementById("searchContentCode").value="";
document.getElementById("alphabet").value=o.id;
var currPage=1;
adminDao.getContactListClassifyByAlphabetForDWR(document.getElementById("corpPhone").value,o.id,currPage,classifySharePhone);
}

function classifySharePhone(result){

DWRUtil.removeAllRows("sharephone");
 
for(var i in result){
var list=result[i];
var cell=[
function(list){
var chkbox=document.createElement("input");
chkbox.type="checkbox";
chkbox.name="delId";
chkbox.value=list.id;
return chkbox;
},
function(list){
return list.corpNumber;
},
function(list){
return list.name;
},
function(list){
return list.phoneNumber;
},
function(list){
return list.email;
},
function(list){
return list.workAddress;
}  
];

DWRUtil.addRows("sharephone",list,cell,{
rowCreator:function(options) {  
var tr = document.createElement("tr");  
tr.style.backgroundColor="#ECF5FF";  
return tr;  
}
  });

  }
   
}

--------------------------------------------------------------------------
相关的html代码,显示数据的地方
<form name="form1" method="post" action="admincreatecontact.do?method=delContact">
<table width="100%" border="0" align="center" cellpadding="1" cellspacing="1" class="f01" >
  <tr>
  <td colspan="6" bgcolor="#90B4D8">按姓名首字母分类查看:
  <font face="Arial, Helvetica, sans-serif">
  <%for(int i=0;i<26;i++){%>
  <!--
  <a href=admincreatecontact.do?method=alphabetCategory&index=<%=((char)(i+65)+"").toLowerCase()%> ><%=((char)(i+65)+"")%></a>
  -->
  <a href="#" id=<%=((char)(i+65)+"").toLowerCase()%> onclick="classifyByAlphabet(this)" ><%=((char)(i+65)+"")%> </a> 
  <%}%>
  </font>
  </td>
  </tr>

  <tr align="center" bgcolor="#90B4D8">
  <td width="5%">&nbsp; <input type="hidden" id="corpPhone" value="${corpPhone }" /></td>
  <td width="10%">分组</td>
  <td width="10%">姓名</td>
  <td width="25%">默认联系电话</td>
  <td width="25%">E-mail邮箱</td>
  <td width="25%">工作地址</td>
  </tr>
<tbody id="sharephone">

  <c:forEach var="phone" items="${phoneList}">
  <tr bgcolor="#ECF5FF">
<td align="center"><input type="checkbox" name="delId" id="delId" value="${phone.id}"></td>
<td align="center">${phone.corpNumber}</td>
<td align="center">${phone.name}</td>
<td align="center">${phone.phoneNumber}</td>
<td>${phone.email}</td>
<td>${phone.workAddress}</td>
</tr>
  </c:forEach>
  </tbody>
  <tr bgcolor="#FFFFFF"> 
  <td align="center">
  <input type="checkbox" onClick="this.value=check(this.form.delId)">
  </td>
  <td>全选</td>
 </tr>  
  </table>
  </form>

作者: yiyi_2   发布时间: 2010-10-12

我看了下,从整体上来说没有问题,可能某个地方被你忽略了什么。这个逻辑绝对没有问题。

作者: zghbsyqyb   发布时间: 2010-10-12

新内容被添加后,我用js查看过checkbox内容typeof查看的结果是undefined,用document.getElementByName("delId").length查看的结果为0.
也就是说新添加的内容无法被js辨识,这个实在很头痛啊,还有没有哪位大哥有处理类似的问题的经验啊?

作者: yiyi_2   发布时间: 2010-10-12