浏览 4560 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-01
环境: prototype1.5.1 业务描述: 做一个搜索功能,需要把根据前端查询条件进行查询结果返回,并把结果用AJAX.Updater方式放到页面指定div中 问题描述: 如果在div有任何元素,在触发AJAX.Updater都会使div元素外的值出现两遍,具体情况如下 <script src="${ctx}/scripts/prototype.js"></script> <script> function aa(){ var url = '${ctx}/registerresult.do'; var name22=$F("name2"); var myAjax = new Ajax.Updater( {success:'brandId'}, url, { method: 'post', parameters:'&name2='+$F("name2"), onFailure: reportError }); } function reportError(){ alert("抱歉,此查询不存在,请重试."); } </script> </head> <body> <label> 科室 <input type="text" name="name2" /> </label> <input type="button" onclick="aa()" value="搜索" /> </p> <div id="brandId"> <table> <c:forEach items="${results}" var="result"> <tr> <td> <input type="checkbox" name="idd" value="${result[0]}" /> </td> <td> ${result[1]} </td> <td> ${result[2]} </td> <td> ${result[3]} </td> <td> ${result[4]} </td> <td> ${result[5]} </td> <td> ${result[6]} </td> <td> ${result[7]} </td> </tr> </c:forEach> </table> </div> </body> </html> 在我点击搜索按钮时候,<div id="brandId">之外的页面元素又出现了一遍,页面上有两组完全一样的数据,也就是页面上出现两遍 科室,如果把它放入<div id="brandId">就不出现,但我输入查询值就不存在了,具体看附件,尝试很多方式,都不能解决,麻烦大家给看一下,谢谢[size=18][/size] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-01
你'${ctx}/registerresult.do'返回的结果里面带有那些input button吧,当然又会更新到div里面
|
|
返回顶楼 | |
发表时间:2007-11-01
没有,里面就是数据,数据没问题
|
|
返回顶楼 | |
发表时间:2007-11-02
今天又研究了一下prototype.js原码,如果返回的是text方式,它会把文本内容显示在指定的div中,如果返回的是对象或集合,它会把整个页面元素除了js之外都给你装到div中,出现昨天说的情况,但这个方式不是很合常理,哪位给看一下,谢谢
|
|
返回顶楼 | |
发表时间:2008-04-07
最近用prototype做了一点东西,确实也发现了类似的奇怪的问题。我用的是1.6
后来解决方法是把div一律都现display搞成none,调用结束再block. 因为是试着做,觉得大概是自己某些地方疏忽。 不过这么具有普遍性,莫非是这个东东的bug? |
|
返回顶楼 | |