本节讲述单选框/下拉菜单/添加文件,综合css,html和JavaScript实现的,具体详情如下所示:
单选框:
实现的功能是:(类似平时的性格测试)
先隐藏一部分页面,然后通过点击单选框来显示。
再通过选项的选择-(每个选项有不同的积分)积分的多少来给出评语
演示代码:
<html> <head> <title>DHTML技术演示---radio的使用</title> <meta http-equiv="content-Type" content="text/html; charset=utf-8"/> <style type="text/css"> #contentid{ display:none;/*显示:默认隐藏*/ } ul{/*无序列表*/ background-color:#80ff00;/*背景色*/ list-style:none;//前面的默认小圆点取消 margin:0px;//外补丁 } ul li{/*设置ul中的li的字体颜色*/ color:#ff0000; } .close{ display:none; } .open{ display:block; } </style> <script type="text/javascript"> function showContent(oRadioNode){ var oDivNode = document.getElementById("contentid"); if(oRadioNode.value=="yes"){ oDivNode.style.display="block"; }else{ oDivNode.style.display="none"; } //第二种方式:利用with /* with(oDivNode.style){ if(oRadioNode.value=="yes"){ display="block"; }else{ display="none"; } } */ } function showResult(){ var oNolRadioNodes = document.getElementsByName("nol"); var val=0; //undefined如果被用作boolean型也是false //alert(val); for(var x=0;x<oNolRadioNodes.length;x++ ){ //找到那个被选中的单选框 if(oNolRadioNodes[x].checked){ val = parseInt( oNolRadioNodes[x].value ); break; } } if(!val){ document.getElementById("erroinfo").innerHTML="没有任何答案被选中".fontcolor("red"); return; } //错误信息赋值为空。 document.getElementById("erroinfo").innerHTML=""; if(val>=1 && val<=3){ document.getElementById("res_1").className="open"; document.getElementById("res_2").className="close"; }else{ document.getElementById("res_1").className="close"; document.getElementById("res_2").className="open"; } } </script> </head> <body> <div> 您要参与问卷调查吗?<br/> <!--radio 单选框 name一样就是互斥--> <input type="radio" name="wenjuan" value="yes" onclick="showContent(this)"/> 是 <input type="radio" name="wenjuan" value="no" onclick="showContent(this)" checked="checked" /> 否 <br/> </div> <div id="contentid"> 问卷调查内容:<br/> 您的姓名:<input type="text" name="name" /><br/> 您的电话:<input type="text" name="tel"/ > </div> <hr/> <h2>欢迎您参与性格测试</h2> <h3>第一题:</h3> <span>您喜欢的水果是什么?</span> <ul id="nolul"> <li><input type="radio" name="nol" value="1"/> 葡萄</li> <li><input type="radio" name="nol" value="2"/> 西瓜</li> <li><input type="radio" name="nol" value="3"/> 苹果</li> <li><input type="radio" name="nol" value="4"/> 芒果</li> <li><input type="radio" name="nol" value="5"/> 樱桃</li> </ul> <div> <input type="button" value="查看测试结果" onclick="showResult()"> <span id="erroinfo"></span> <div id="res_1" class="close">1-3分:你的性格偏内向,建议。。。</div> <div id="res_2" class="close">4分以上:你的性格偏外向,建议。。。</div> </div> </body> </html>
360浏览器8.1 演示结果:
一开始的页面:
单选框选中”是”:
不选中水果时的提示:
选中水果时的提示:
下拉列表:
简单的演示代码:
<html> <head> <title>DHTML技术演示---select的使用</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <style type="text/css"> .clrclass{ height:50px; width:50px; float:left;/*漂浮*/ margin-right:30px; margin-bottom:20px;/*下-外补丁*/ } #text{ clear:left;/*左边不能漂浮*/ } </style> <script type="text/javascript"> function changeColor( oDicClrNode ){ //得到要设置的颜色对象 var colorVal = oDicClrNode.style.backgroundColor; //alert(colorVal); //设置字体的颜色 document.getElementById("text").style.color=colorVal; } function changeColor2(){ //alert("aabb");//试试能不能监听 var oSelectNode = document.getElementsByName("selectColor")[0]; var collOptionNodes =oSelectNode.options;//options 获取 select 对象中 option 对象的集合。 // for(var x=0;x<collOptionNodes.length;x++){ // alert( collOptionNodes[x].innerHTML ); // }//遍历一下。 //选中的选项 //alert( collOptionNodes[ oSelectNode.selectedIndex ].innerHTML ); var colorVar = collOptionNodes[ oSelectNode.selectedIndex ].value; document.getElementById("text").style.color=colorVar; } function changeColor3(){ var oSelectNode = document.getElementsByName("selectColor")[1]; var collOptionNodes = oSelectNode.options; var colorVar = collOptionNodes[ oSelectNode.selectedIndex ].value; document.getElementById("text").style.color=colorVar; } </script> </head> <body> <div class="clrclass" id="clr1" style="background-color:black" onclick="changeColor(this)"></div> <div class="clrclass" id="clr1" style="background-color:red" onclick="changeColor(this)"></div> <div class="clrclass" id="clr2" style="background-color:green" onclick="changeColor(this)"></div> <div class="clrclass" id="clr3" style="background-color:blue" onclick="changeColor(this)"></div> <div class="clrclass" id="clr4" style="background-color:#c0c0c0;" onclick="changeColor(this)"></div> <div class="clrclass" id="clr5" style="background-color:#00ffff" onclick="changeColor(this)"></div> <div id="text"> <img src="/UploadFiles/2021-04-02/">360浏览器8.1 演示结果:
这个下拉框是用文字来说明。
下面这个下拉框直接用颜色来表明设置文字为什么颜色
加强的下拉列表-二级连动菜单-代码演示:
实现的功能就是,根据第一个菜单的选项,来决定第二个菜单的显示。
<html> <head> <title>DHTML技术演示---select的使用--二级连动菜单</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <script type="text/javascript"> function selectCity(){ //json: 用一个二维数组存储"省份-城市集合",以后该数据要来自后台 var collProvices ={"beijing" : ['海淀区','东城区','西城区','朝阳区'], "zhejiang" : ['杭州','宁波','金华','温州'], "hunan" : ['益阳','长沙','株洲','湘潭'], "jiangxi" : ['南昌','九江','萍乡','上饶'] }; //{}这个是用来存key:value的,value可以是任意类型(数组集合都可以)、[]这个是数组 //alert(collProvices["beijing"][2]);//西城区 //获取用户所选择省份的下辖城市集合 var oSelNode = document.getElementById("selid"); var index = oSelNode.selectedIndex;// selectedIndex选中哪项,返回数字 var proviceName = oSelNode.options[index].value;//获得选中的那项的value var arrCities = collProvices[proviceName];//获得选中的那个省份的下辖城市数组 var oSubSelNode = document.getElementById("subselid");//获得第二个下拉列表对象 //把下拉菜单"subselid"中原有的内容清空 //注意,数组删除之后,长度是自动更新的 //法1--列表从前面开始移除 // for(var x=1;x<oSubSelNode.options.length;){//注意,数组删除之后,长度是自动更新的,因此for最后不要用"x++"修正 // oSubSelNode.removeChild( oSubSelNode.options[x] ); // } //oSubSelNode.length和oSubSelNode.options.length的值一样 //oSubSelNode[x]和oSubSelNode.options[x]一样 //法2--列表从后面开始移除 // for(var x=oSubSelNode.length-1;x>=1;x--){ // oSubSelNode.removeChild( oSubSelNode[x] ); // } //法3--直接给oSubSelNode.options.length或oSubSelNode.length赋值 oSubSelNode.options.length=1; //长度设置为1 ,那么剩余的选项自动被删掉 //把城市集合中的每个元素添加到下拉菜单"subselid"当中 for(var x=0;x<arrCities.length;x++){ var optionNode = document.createElement("option"); optionNode.innerHTML=arrCities[x]; //oPtionNode.value=...[x];//正式开发,应该还有该选项对应的value值要赋,这里我们就省略了。 oSubSelNode.appendChild(optionNode); } } </script> </head> <body> <select id="selid" onchange="selectCity()"> <option>--选择省份--</option> <option value="beijing">北京</option> <option value="hunan">湖南</option> <option value="zhejiang">浙江</option> <option value="jiangxi">江西</option> </select> <select id="subselid"> <option>--选择城市--</option> </select> </body> </html>360浏览器8.1 演示结果:
file组件–添加与删除附件
没有与后台联系的功能哦,只是学下html中的技术
演示代码:
<html> <head> <title>DHTML技术--file组件--添加与删除附件</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type="text/css"> /* a:link 超链接未点击状态。 a:visited 被访问后的状态。 a:hover 光标移到超链接上的状态(未点击)。 a:active 点击超链接时的状态。 使用顺序: L – V – H – A */ table a:link,table a:visited, img{ text-decoration:none; /*检索或设置对象中的文本的装饰。 text-decoration: none : 默认值。无装饰 blink : 闪烁 underline : 下划线 line-through : 贯穿线 overline : 上划线 */ color:#0000ff; } table a:hover{ color:#ff0000; } </style> <script type="text/javascript"> function addFile(){ var oFileTableNode = document.getElementById("fileTable"); var oTrNode = oFileTableNode.insertRow();//insertRow 在表格中创建新行(tr),并将行添加到 rows 集合中。 var oTdNodeFile = oTrNode.insertCell();//insertCell 在表格行(tr)中创建新单元格,并将单元格添加到 cells 集合中。 oTdNodeFile.innerHTML="<input type='file'/>"; var oTdNodeDel = oTrNode.insertCell(); //用文字 //oTdNodeDel.innerHTML="<a href='javascript:void(0)' onclick='deleteFile(this)'>删除附件</a>"; //用图片---自己找个图片,取名为a.jpg就可以了-或者改代码 oTdNodeDel.innerHTML="<img src='a.jpg' alt='删除附件' onclick='deleteFile(this)'/>"; } function deleteFile(oANode){ //a标签的父节点是td,td父节点是tr。 var oTrNodeDel = oANode.parentNode.parentNode;//TR oTrNodeDel.parentNode.removeChild( oTrNodeDel ); } </script> </head> <body> <table id="fileTable"> <tr> <th> <a href="javascript:void(0)" onclick="addFile()">添加附件</a> </th> </tr> <!--点按钮来添加附件,所以不用html,用JavaScript写 <tr> <td><input type="file"/> </td> <td> <a href="javascript:void(0)" onclick="deleteFile(this)">删除附件</a> </td> </tr> --> </table> </body> </html>360浏览器8.1 演示结果:
删除第二行的tr:
以上所述是小编给大家介绍的基于JavaScript实现单选框下拉菜单添加文件效果的相关知识,希望对大家有所帮助,如果大家想了解更多内容敬请关注!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“基于JavaScript实现单选框下拉菜单添加文件效果”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
2024年11月09日
2024年11月09日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]