1.在双击单元格事件的处理函数加入不可修改的单元格的判断。类似
for(var i=0;i<arr.length;i++){
    if(currentCell.className.indexOf('readonly') > -1){
        continue;
    }else{
        ....
    }
}
    
2.可以考虑用JSON来传递数据。
    

解决方案 »

  1.   


    <form name="f1" method="post" action="XXX">
    <table border="1" width="500">
    <tr>
    <td width="20%">这是主键</td>
    <td width="40%">名字</td>
    <td width="40%">编号</td>
    </tr>
    <tr>
    <td><input type="hidden" name="ids" value="1">1</td>
    <td onDblClick="show(this,'0','打酱油');"><input type="hidden" name="names" value="打酱油">打酱油</td>
    <td onDblClick="show(this,'1','9527');"><input type="hidden" name="codes" value="9527">9527</td>
    </tr>
    <tr>
    <td><input type="hidden" name="ids" value="2">2</td>
    <td onDblClick="show(this,'0','俯卧撑');"><input type="hidden" name="names" value="俯卧撑">俯卧撑</td>
    <td onDblClick="show(this,'1','9528');"><input type="hidden" name="codes" value="9528">9528</td>
    </tr>
    </table>
    <input type="submit">
    </form>
    <script>
    function show(obj,id,valu){
    if(id == "0"){
    obj.innerHTML = "<input type='text' name='names' value='"+ valu +"'>";
    }else if(id == "1"){
    obj.innerHTML = "<input type='text' name='codes' value='"+ valu +"'>";
    }
    }
    </script>然后在后台这样取
    String id[] = request.getParameterValues("ids");//这是主键的数组
    String name[] = request.getParameterValues("names");//这是名字的数组
    String code[] = request.getParameterValues("codes");//这是编号的数组
    这里是一一对应的
    id[0]的名字是name[0],编号是code[0]
    id[1]的名字是name[1],编号是code[1]
    依次类推,下面就是把所有的值在数据库里跟新一遍ok
      

  2.   

    谢谢jacky_q和terry2870的回答,声明一下,我表格中的内容首先也是从数据库中读出来的,而不象terry2870那样写死了。无论如何,非常感谢你们,然后有了一些思路。希望有更好的idea出现。
      

  3.   

    晕,我给你的是例子
    在jsp中可以把我给你的例子写成动态的啊
      

  4.   

    这种最好用 jquery 写 想一个一个保存 还是 一下全部保存 都可以随意