js动态控制表单的tr,td的显示和隐藏

2023-11-11



无论是事先写好的,还是动态生成的,要找到指定的tr或td都必须知道其相关的一个属性,未必必须是id或name,然后无论是在一个table还是多个 table都可以通过document.getElementsByTagNames( "tr ")或td,取得集合,……再根据知道的属性再找,最后设置显示/隐藏

 

方法一:
document.getElementById( "控件ID ").style.visibility= "hidden ";
document.getElementById( "控件ID ").style.visibility= "visible ";
方法二:
document.getElementById( "控件ID ").style.display= "none ";
document.getElementById( "控件ID ").style.display= "inline ";
方法一隐藏后   页面的位置还被控件占用   只是不显示   类似于.net验证控件的Display=Static
方法二隐藏后   页面的位置不被占用   类似于.net验证控件的Display=Dynamic

 

我写的一个根据下拉菜单的不同选择值来显示下边的一个input表单的显示和隐藏

js:


function listchange(){
    
    var sel=document.getElementsByName('tasklist_type');
    for(var i=0;i<tasklist_type.options.length;i++)
    {
     if(tasklist_type.options[i].selected)
     {
      if(tasklist_type.options[i].value==0){
        document.getElementById( "tasklistoriginalno").style.display= "none";
        document.getElementById("tasklist_originalno").value = "";

/*上面红色的这句话用处很大的,因为你想隐藏掉下面的一个表单,那么这个表单的值也就不需要写入数据库了,所以记得在隐藏的同时将被隐藏表单的值清空;当然要是你不嫌麻烦的话在表单的数据提交到php的数据处理页面的时候对 tasklist_type根据其值是0还是1来行进判断写不写入 tasklist_originalno 的值 */
      }
      if(tasklist_type.options[i].value==1){
        document.getElementById( "tasklistoriginalno").style.display= "";
      }
     }
    }
     
}

 

html:

                <tr height='30'>
                 <td>&nbsp;<{$lang_tasklist_type}>: </td>
                 <td>
                    <select name="tasklist_type" id="tasklist_type"  οnchange="listchange();return false;">
                        <option value="null" ><{$lang_tasklist_sel}></option>
                        <option value="0" ><{$lang_tasklist_common}></option>
                        <option value="1" ><{$lang_tasklist_supplement}></option>
                    </select>
                </td>
             </tr>
             <tr height='30'  id='tasklistoriginalno'>
               <td>&nbsp;<{$lang_tasklist_originalno}>:</td>
               <td colspan='3'><input type='text'  id='tasklist_originalno' name='tasklist_originalno'/></td>
             </tr>

 

 

 

---------------------------------------------------------------------------------------------

上面的代码在IE6和FF下都能成功实现效果,但是在IE8下不能得到相应的效果,原因出在在IE8下用上面的代码无法获取到下拉列表的值,经测试下面的代码可以:

js

function listchange()
{   
    var sel=document.getElementsByName("tasklist_type")[0].value; //获取下拉表单的value值
   
    if(sel=='0')
     {
          document.getElementById( "tasklistoriginalno").style.display= "none"; //隐藏id为tasklistoriginalno的td
          document.getElementById("tasklist_originalno").value = ""; //并将其值赋为空
     }
               
    if(sel=='1')
     {
         document.getElementById( "tasklistoriginalno").style.display= ""; //当下拉表单的值为0时显示
     }
}

 

 

 

下面是测试的例子,也是我在网上看到的,我们将其copy到保存到一个html页面中在IE8下打开,OK:

<!--有表单---->

< %@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  <script type="text/javascript">
      function optChange(){
        var name=document.areaName.area.options[document.areaName.area.selectedIndex].text;
        alert(name);
      }
  </script>
  <body>
    <form name="areaName">
    <select name="area" οnchange="optChange()">
     <option  value="上海">上海</option>
     <option value="南京">南京</option>
     <option value="北京">北京</option>
     <option value="成都">成都</option>
     <option value="长沙">长沙</option>
     <option value="山西">山西</option>
    </select>
    </form>
  </body>
< /html>

< !---无表单--->



< %@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  <script type="text/javascript">
      function optChange(){
       var name=document.getElementsByName("area")[0].value;
        alert(name);
      }
  </script>
  <body>
    <select name="area" οnchange="optChange()">
     <option  value="上海">上海</option>
     <option value="南京">南京</option>
     <option value="北京">北京</option>
     <option value="成都">成都</option>
     <option value="长沙">长沙</option>
     <option value="山西">山西</option>
    </select>
  </body>
< /html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js动态控制表单的tr,td的显示和隐藏 的相关文章

  • springCloud微服务系列——分布式日志采集

    目录 一 简介 二 思路 三 自定义Logback appender 属性注入 Logback标签注入属性 Spring配置信息注入属性 Logback代码注入属性 Elasticsearch模板设计 示例代码 一 简介 分布式应用必须有一

随机推荐

  • [附源码]SSM计算机毕业设计基于web场馆预约管理系统JAVA

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • Java的HttpServletResponse对象使用(请求和响应)

    一 学习目标 1 HttpServletResponse对象 2 HttpServletResponse应用 3 RequestDispatcher接口 二 重点知识 Servlet最主要的作用就是处理客户端请求 并向客户端做出响应 为此
  • 2021-10-04

    Centos 7安装Notepad 安装snap sudo yum install epel release sudo yum install snapd sudo systemctl enable now snapd socket sud
  • 使用TWRP Recovery刷入CM13等第三方ROM教程

    http www miui com thread 4492914 1 1 html 首先 可以使用论坛里发布的中文TWRP或者我改的http www miui com forum php mo page 1 pid124770869里的中文
  • 巧解高并发之消息压缩

    随着互联网的发展 高并发问题几乎是每个企业都会面临的问题 而目前解决高并发最受欢迎的便是微服务 通过类似于增加服务器数量而达到一种 人多力量大的 效果 而解决这类问题除了增加 人 的数量 还可以精简任务 降低繁琐度 那么目标就到了消息上 既
  • 量化投资学习——一些牛比的量化投资公司

    Jane Street Jane Street是华尔街最神秘的交易公司 以关注科技和股票交易而闻名 去年他们总交易额达到了5万亿美元 Jane Street公司成立于2000年 目前拥有600多名员工 每天股权交易量高达130亿美元 有消息
  • 多线程造成的资源以及系统状态问题 ==> 多线程造成状态混乱 :参考文章

    为什么80 的码农都做不了架构师 gt gt gt 实战体会Java多线程编程精要 在 Java 程序中使用多线程要比在 C 或 C 中容易得多 这是因为 Java 编程语言提供了语言级的支持 本文通过简单的编程示例来说明 Java 程序中
  • jeesite图片上传并显示

    前几天大哥叫我搞个这的需求出来 上传图片并展示出来 并且后台对图片进行裁剪上传 前端传来的图片是个base64的编码 格式的图片 点击新增 点击上传图片 可进行裁剪 然后上传并且展示出来 前端form页面附上 记住 path路径一定要对上
  • jmeter

    我整理了一下性能测试的一些常见指标 大家看看还有没有需要完善的 性能测试是评估系统在特定工作负载下的能力和可靠性的过程 常见的性能测试指标包括以下几种 1 响应时间 Response Time 系统从接收请求到返回响应所需的时间 2 吞吐量
  • 一文读懂运放规格书参数(2)

    1 电源抑制比 Power supply rejection ratio PSRR 定义 双电源供电电路中 保持负电源电压不变 输入不变 而让正电源产生变化幅度为 VS 频率为 f 的波动 那么在输出端会产生变化幅度为 Vout 频率为 f
  • IEEEE trans模板中怎么使用algorithm2e

    IEEEE trans模板中怎么使用algorithm2e 本文主要记录如何在IEEEE trans模板中使用algorithm2e 避免踩坑 找不到解决方案 目录 IEEEE trans模板中怎么使用algorithm2e 1 注释掉该注
  • 2003系统internet信息服务器,WindowsServer2003创建和管理Internet信息服务器.docx

    F图 F图 Windows Server 2003 实训报告 班级 软件设计10 2姓名学号得分 实训九 创建和管理In ternet信息服务器 实训目的 掌握Web FTP服务器的配置 实训环境 1 装有 Windows Server 2
  • pssh远程批量执行命令

    Pssh pssh是python写的可以并发在多台机器上批量执行命令的工具 它的用法可以媲美ansible的一些简单用法 执行起来速度比ansible快它支持文件并行复制 远程命令执行 杀掉远程主机上的进程等等 杀手锏是文件并行复制 当进行
  • 【Spring Boot】详解restful api

    目录 1 restful api 1 1 历史 1 2 内容 1 3 传参 2 Spring Boot中的Restful Api 1 restful api 1 1 历史 RESTful API Representational State
  • netty入门实例

    Netty 5用户指南 http ifeve com netty5 user guide Netty是一个NIO框架 使用它可以简单快速地开发网络应用程序 比如客户端和服务端的协议 Netty大大简化了网络程序的开发过程比如TCP和UDP的
  • PCL 获取格网最低点(C++详细过程版)

    格网最低点 一 概述 二 代码实现 三 结果展示 1 原始点云 2 滤波结果 一 概述 获取格网最低点在PCL里有现成的调用函数 具体算法原理和实现代码见 PCL GridMinimum获取栅格最低点 为充分了解GridMinimum算法实
  • Mysql binlog 日志

    Mysql binlog 日志 一 Binlog格式介绍 模式1 Row 日志中会记录成每一行数据被修改的形式 然后在slave端再对相同的数据进行修改 优点 row level模式下 bin log中可以不记录执行的sql语句的上下文相关
  • p-value,q-value,FDR

    假阴性错误 false negative errors 高水平的基因可能偶尔没有检测到 假阳性错误 false positive errors 低水平表达的基因由于扩增偏差 可能显得过于丰富 导致假阳性错误 错误发现率 False Disc
  • SQL语句常用记录_count()常用用法以及和group by的组合用法

    之前听大佬说过 会学习的人将资料写下来 不会学习的人妄想将资料记到脑子里 我觉得还是有一定道理的 好记性不如烂笔头 以此篇博客记录我在实际开发中常用到的sql语句 方便以后查看 相信很多用过sql的人 谈到sql语句第一时间想到的就是 se
  • js动态控制表单的tr,td的显示和隐藏

    无论是事先写好的 还是动态生成的 要找到指定的tr或td都必须知道其相关的一个属性 未必必须是id或name 然后无论是在一个table还是多个 table都可以通过document getElementsByTagNames tr 或td