代码片段:
<c:forEach var="Order" items="${listOrd}">
  <form action="doUpdateOrd" onsubmit="">
  
   <span style="margin-left: 25px;">商品信息:</span> <a id="various3" href="">详细信息</a>
   
   
  <input type="submit" id="sub"  value="提交"  onclick=""></input>
   
    
    </form>
    </c:forEach>
点击“详细信息”弹出一个div层。
第一个正常弹出。
第二个无法弹出。

解决方案 »

  1.   

    什么意思,你说清楚,还有你用foreach循环form表单干什么,你故意的?
      

  2.   

    亲。你这样循环之后 你确定form之中标签的id不会一样??
      

  3.   

    显示数据  然后修改。  主要问题是第一个能正确引用到js和css然后弹出一个层
      

  4.   

    我还是没明白你要做什么,你点什么弹出一个层,就算是弹出一个层,你用了foreach,但是没用到Order的数据啊,最好把你要表达的说清楚了,还有你调用js了么,我没看见,你用jquery的么?还是什么
      

  5.   

    数据库,jquery等代码在第一个表单的超链接正常弹出。第二个没有弹出。
      

  6.   

    p793049488 的考虑的正确的。你这样的循环会导致ID都一样,结果就是 <a id="various3" href="">这个地方所有的ID都是various3,如果是通过jquery之类的来监控这个标签的onclick事件,那么解雇会导致它只监控第一个。后面的无效。建议你写一个js方法,然后穿进去这些对象的ID。当然,首先解决的是,你要保证循环里的对象的ID都是唯一。
      

  7.   

    哦~我知道
    原来你是用jquery的这个东西来显示数据的吧$("#id").click(function(){
        //你的逻辑
    })如果你想用这个的话,就是真的不行的,原因已经有人讲了,就是他这个
    相当于document.getElementsByName("id")[0],你的id又是相同的,
    所谓永远只是第一个有效,
    你不应该这样写的,你可以写成function show(){
        //你的逻辑
    }然后你foreach循环遍历的时候,再调用这个函数就行了
      

  8.   

    id="various3"表单两项的ID都是这,是不行的
      

  9.   

    正解。我一开始用了一个很傻的办法,复制了jquery控制的代码,结果只是每当jquery多一个,它所监控的就多一个。   解雇=结果?  
      

  10.   

    着急了,所以手误。是“结果”。还有后面的穿是“传”。特此更正。如果你还没有解决,那么我给你个解决方案。
    <% int i = 0 ;%>
    <c:forEach var="Order" items="${listOrd}">
      <form action="doUpdateOrd" onsubmit="">
       
       <span style="margin-left: 25px;">商品信息:</span> <a id="various<%=++i%>" href="">详细信息</a>
        
        
      <input type="submit" id="sub"  value="提交"  onclick="SUB(various<%=i%>);"></input>    </form>
        </c:forEach>
    下面是响应的JS代码: function SUB(id){
       alert($("#"+id).text());
    }