html代码:
<input type="text" id="x1" name="price[]"  value="" />
<input type="checkbox" id="1" name="suffix[]" >
因为是表格,所以每一行都有一个文本输入框和一个checkbox比如某行不选中某个checkbox,该行的文本输入框就消失掉,或者改name吧选中checkbox,文本输入框就显示出现怎么搞呢?

解决方案 »

  1.   

    jquery会吗?
    换名字:
    $("#1”).change(function()
    {
       if(this.checked)
          $("#x1").attr("name","abc");
       else
          $("#x1").attr("name","price[]");
    });
      

  2.   


    <script type="text/javascript">
         window.onload = function(){
            document.getElementById("1").onclick = function(){
                document.getElementById("x"+this.id).style.display = this.checked?"none":"block";
            }
         }
    </script>checkbox 控制text隐藏/显示?
      

  3.   


    因为还要post表单过去,如果隐藏了,虽然看不到,但文本输入框的值还会传过去的如果改个name,那边接收不到值,就OK了
      

  4.   

    除了控制显示/隐藏 还要改name 属性是吗 ?
      

  5.   


    嗯嗯,改name是主要的,如果隐藏控制,这样操作的人感觉直观,用户体验比较好
      

  6.   

    我的办法是给txt个自定义属性 。保存name。
    当checkbox点中的时候 又改回来 。
    <input type="text" id="x1" name="price[]"  value="" tempName="price[]" /><script type="text/javascript">
         window.onload = function(){
            document.getElementById("1").onclick = function(){
                var txt = document.getElementById("x"+1);
                if(this.checked){
                    txt.style.display ="none";
                    txt.setAttribute("name","changeName");
                }
                else{
                    txt.style.display = "block";
                    txt.setAttribute("name",txt.getAttribute("tempName"));
                }
            }
         }
    </script>
      

  7.   

    自己纯粹些js比较繁琐,引用jquery处理最理想了,下边的效果仅供参考
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">  <script>
    function showInput(obj){
    var val = obj.checked;
    //根据选择的checkbox确定它后面的列是否显示文本框
    if(val == true){
    obj.parentElement.parentElement.lastChild.innerHTML = "<input />";//先找到行,在找到最后以列
    //obj.parentElement.nextSibling.innerHTML = "<input />";//nextSibling下一节点
    }else{
    obj.parentElement.nextSibling.innerHTML = "";
    }
    }
      </script>
     </HEAD> <BODY>
      <table border = "1">
    <tr id='t'>
    <td><input type="checkbox" onclick="showInput(this)"/></td>
    <td width="100">&nbsp;</td>
    </tr>
    <tr>
    <td><input type="checkbox" onclick="showInput(this)"/></td>
    <td width="100">&nbsp;</td>
    </tr>
      </table>
     </BODY>
    </HTML>