打代码能当饭吃? 2021-08-10 23:28 采纳率: 50%
浏览 116
已结题

急,如题,表格tr标签里面嵌套一个form表单,在JS代码中无法通过form设置的id直接获取form下的子标签input,但是却能通过tr设置的id获取到input标签,这是什么情况


                    <tr<!-- id="myform" -->>
                        <form action="#" method="post" id="myform">
                            <td>1</td>
                            <td><input type="text" name="userName" value="123213" disabled="disabled"></td>
                            <td><input type="text" name="userPwd" value="123213" disabled="disabled"></td>
                            <td><input type="text" name="sex" value="123213" disabled="disabled"></td>
                            <td><input type="text" name="telePhone" value="123213" disabled="disabled"></td>
                        </form>
                        <td><a href="#">删除</a></td>
                        <td><a href="#" onclick="get()">修改</a>&emsp;
                                                       <a href="#" onclick="ban()";document:myform.submit();return false;">保存</a>
                                                </td>
                    </tr>
function get()
  {
  var inputs = document.getElementById("myform").getElementsByTagName("input");
        for(var i = 0;i <inputs.length; i++){
            inputs[i].removeAttribute("disabled");
        }
}
function ban(){
    var inputs = document.getElementById("myform").getElementsByTagName("input");
    for(var i = 0;i < inputs.length; i++){
        inputs[i].setAttribute('disabled', 'disabled');
    }
}

  • 写回答

5条回答 默认 最新

  • 一把编程的菜刀 2021-08-10 23:59
    关注

    因为form不能放在table下的tr上,即不能这样

    <form action="#" method="post" id="myform"><tr></tr></form>
    
    
    ```,也不能放在tr下td上,即不能
    ```html
    <tr><form action="#" method="post" id="myform"><td></td></form></tr>
    
    

    ,要么放在table外

    <form action="#" method="post" id="myform"><table></table></form>
    
    

    ,要么放在

    <td><form action="#" method="post" id="myform"></form></td>
    
    

    ,否则无法通过form读取到form下面的input,这是table的一个特殊性,如果你使用的是div,li这些实现的话,那就可以,维度table tr,td不能这样,因为table,tr,td是一个整体解析

    <style>
     li,form{
         display:inline-block;
     }
     
     </style>
    <div>
        <ul>
    <form action="#" method="post" id="myform">
        <li>1</li>
        <li><input type="text" name="userName" value="123213" disabled="disabled"></li>
        <li><input type="text" name="userPwd" value="123213" disabled="disabled"></li>
        <li><input type="text" name="sex" value="123213" disabled="disabled"></li>
        <li><input type="text" name="telePhone" value="123213" disabled="disabled"></li>
         </form>
        <li><a href="#">删除</a></li>
        <li><a href="#" onclick="get()">修改</a>&emsp; <a href="#" onclick="ban();document:myform.submit();return false;">保存</a></li>
      </ul>
    
    </div> 
    function get()
    
      {
    
      var inputs = document.getElementById("myform").getElementsByTagName("input");
    alert(inputs.length);
            for(var i = 0;i <inputs.length; i++){
                alert(inputs[i].value);
                inputs[i].removeAttribute("disabled");
    
            }
    
    }
    
    function ban(){
    
        var inputs = document.getElementById("myform").getElementsByTagName("input");
    
        for(var i = 0;i < inputs.length; i++){
    
            inputs[i].setAttribute('disabled', 'disabled');
    
        }
    
    }
    
    

    看,用div,ul li实现的就可以

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月29日
  • 已采纳回答 8月21日
  • 创建了问题 8月10日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装