在JSP的List页面,点击按钮时,让按钮的值在两种状态(冻结、解冻)之间切换,下面的代码中只能使第一个按钮能切换,其它的均没有反应,不知道为什么?<td align="center">
    <input name="user_id" type="hidden" value=<%=userId%>>
<input type="button" style="cursor:hand" name="modify" value="修改" onClick="updateUser('<%=userId%>');" />

<%
   if(user_Name.equals("admin"))
      {    
        %>
       <input type="button" style="cursor:hand" name="approve" value="审核" disabled="true" />
      <input type="button"  style="cursor:hand" name="delete1" value="删除" disabled="true"/>
      <input type="button" style="cursor:hand" name="freeze1" value="冻结"  disabled="true"/>
      
<%
     }
   else
   {
   %>
    <input type="button" style="cursor:hand" name="approve" value="审核" onClick="approveUser('<%=userId%>');" />
<input type="button" style="cursor:hand" name="delete" value="删除" onClick="delUser('<%=userId%>');" />
<input type="button" style="cursor:hand"  value="冻结" id="freeze"  onClick="freezeUser(this.value);" />
<%
           }
              %>
</td>
<script language=javascript>
function freezeUser(obj)
 {
     if(obj =='冻结')
     {
      document.getElementById('freeze').value = '解冻';
     }
     else{
      document.getElementById('freeze').value = '冻结';
     }
 }
</script>

解决方案 »

  1.   

    一般思路是这样。。
    1、传一个标识到jsp页面。
    2、采用ONLOAD事件,初始化页面按钮的值和事件。
    3、如果你把一个按钮值为disable以后,再次触发事件的时候一定要让button改回来。
      

  2.   

      你的代码写的比较乱!不知道我理解的对不
    写js很简单的,给审核和删除加上id,代码如下
    <script language=javascript> 
    if(user_Name=='admin'){
    freezeUser('冻结');
    }
    function freezeUser(obj) 

        if(obj =='冻结') 
        { 
          document.getElementById('approve').disabled = true;
          document.getElementById('delete').disabled = true;
          document.getElementById('freeze').value = '解冻'; 
        } 
        else{ 
          document.getElementById('approve').disabled = false;
          document.getElementById('delete').disabled = false;
          document.getElementById('freeze').value = '冻结'; 
        } 

    </script> 
      

  3.   

    function freezeUser(obj) 

        if(obj =='冻结') 
        { 
          document.getElementById('freeze').value = '解冻'; 
          document.getElementById('freeze1').value = '解冻'; 
        } 
        else{ 
          document.getElementById('freeze').value = '冻结'; 
          document.getElementById('freeze1').value = '冻结'; 
        } 

    你2个按钮都不是一个id怎么可能会改变咧?一个是freeze一个是freeze1
      

  4.   

    我按2楼的改了  但还是不行
     <input type="button" style="cursor:hand" id="approve" name="approve" value="审核" onClick="approveUser('<%=userId%>');" />
    <input type="button" style="cursor:hand" id="delete" name="delete" value="删除" onClick="delUser('<%=userId%>');" />
    <input type="button" style="cursor:hand"  value="冻结" id="freeze"  onClick="freezeUser(this.value);" />
    function freezeUser(obj)
     {
         if(obj =='冻结')
         {
          document.getElementById('freeze').value = '解冻';
          document.getElementById('modify').disabled="true";
          document.getElementById('approve').disabled="true";
          document.getElementById('delete').disabled="true";
          
         }
         else if(obj =='解冻')
         {
          document.getElementById('freeze').value = '冻结';
          document.getElementById('modify').disabled='false';
          document.getElementById('approve').disabled='false';
          document.getElementById('delete').disabled='false';
         }
     }
      

  5.   

    知道了   改成这样就可以 document.getElementById('modify').disabled=false; 在false上多了引号。    但只能对List列表中的第一个按钮的值进行切换,其它的同类按钮改不了?为什么呢?
      

  6.   

    <html><head>
    <script>
    function changeText(){
    var text = document.getElementById("btn").value
    if("冻结" == text){
    document.getElementById("btn").value="解冻";
    }
    else{
    document.getElementById("btn").value="冻结";
    }
    }
    </script>
    </head>
    <body>
    <input type="button" value="冻结" id="btn" onclick="changeText()"/>
    </body>
    </html>
    我简单测试下,这样是可以的啊!
    楼主再仔细检查下
      

  7.   

    单个按钮是没有问题,可我List页面有多个这样的按钮。
      

  8.   

    <html>
    <head>
    </head>
    <body>
    <input type="button" style="cursor:hand" name="modify" value="修改" onClick="updateUser(' <%=userId%>');" />
    <input type="button" style="cursor:hand" id="approve" name="approve" value="审核" onClick="approveUser(' <%=userId%>');" /> 
    <input type="button" style="cursor:hand" id="delete" name="delete" value="删除" onClick="delUser(' <%=userId%>');" /> 
    <input type="button" style="cursor:hand"  value="冻结" id="freeze"  onClick="freezeUser(this.value);" /> <script>
    function freezeUser(obj) 

        if(obj =='冻结') 
        { 
          document.getElementById('freeze').value = '解冻'; 
          document.getElementById('modify').disabled=true; 
          document.getElementById('approve').disabled=true; 
          document.getElementById('delete').disabled=true; 
          
        } 
        else if(obj =='解冻') 
        { 
          document.getElementById('freeze').value = '冻结'; 
          document.getElementById('modify').disabled=false; 
          document.getElementById('approve').disabled=false; 
          document.getElementById('delete').disabled=false; 
        } 
    }
    </script>
    </body>
    </html>这样就可以啊一个可以 其他也应该可以的
      

  9.   

    不  只对第一个有效  document.getElementById('xxx')取到的值是一样的   怎么改呢
      

  10.   

    呵呵,是你之前没说明白,如果list里面有多个相同的按钮,它们的id一样的话,只对第一个有效的,你应该是list加for循环出来的吧,你可以在input 的id后加个变量i,以区别各个input ,js代码如下:
    <%for(int i=0;i<10;i++){%>
    <input type="button" style="cursor:hand" name="modify" value="修改" onClick="updateUser(' <%=userId%>');" /> 
    <input type="button" style="cursor:hand" id="approve<%=i%>" name="approve" value="审核" onClick="approveUser(' <%=userId%>');" /> 
    <input type="button" style="cursor:hand" id="delete<%=i%>" name="delete" value="删除" onClick="delUser(' <%=userId%>');" /> 
    <input type="button" style="cursor:hand"  value="冻结" id="freeze"  onClick="freezeUser(this.value,<%=i%>);" /> 
       <%}%>
    <script> 
    function freezeUser(obj,i) 

        if(obj =='冻结') 
        { 
          document.getElementById('freeze'+i).value = '解冻'; 
          document.getElementById('modify'+i).disabled=true; 
          document.getElementById('approve'+i).disabled=true; 
          document.getElementById('delete'+i).disabled=true; 
          
        } 
        else if(obj =='解冻') 
        { 
          document.getElementById('freeze'+i).value = '冻结'; 
          document.getElementById('modify'+i).disabled=false; 
          document.getElementById('approve'+i).disabled=false; 
          document.getElementById('delete'+i).disabled=false; 
        } 

    </script> 
      

  11.   

    顶LS,你的是button,不是复选,只对找到的第一个有效。
      

  12.   

    多谢11楼的兄弟,但我的id是36位,形如这样:id=d63e1f09-3bd2-4314-ae72-109596aa7f4d