js实现动态改变radio状态的方法


Posted in Javascript onFebruary 28, 2018

h5的radio是自带选中状态改变的,但是如果自带的状态无法满足自己的需求时,就需要自己去实现。

代码如下:

h5部分代码

<p class="group">
 <label class="active">
  <input type="radio" name="parent_radio" value="1" id="new_data" onclick="change()"/>
  最新资料</label>
 <label>
  <input type="radio" name="parent_radio" value="0" id="my_data" onclick="change()"/>
  我的资料</label>
 <label>
  <input name="parent_radio" type="radio" id="screen_data" value="0" onclick="change()"/>
  分类浏览</label>
 <label>
  <input type="radio" name="parent_radio" value="0" id="history_data" onclick="change()"/>
  浏览历史</label>
</p>

CSS代码

<style>
 input[type="radio"] {
  /*取消自带按钮*/
  color:gray;
  display: none;
 }
 .group>label:hover{
  /*鼠标移到控件上做的改变*/
  background-color: cornflowerblue;
 }
 .group>label{
  /*未选中状态*/
  float: left;
  color: #4A4A4A;
  font-size: 16px;
  padding: 10px 11px;
 }
 .group>label.active{
  /*选中状态*/
  color: #316CEB;
  font-size: 16px;
  border-top: 2px solid #316CEB;
  padding: 10px 11px;
 }
</style>

JS方法代码

<script type = "text/javascript">
 function change()
 {
  var radio = document.getElementsByName("parent_radio");
  /*用ByName是为了取到所有的radio*/
  var radioLength = radio.length;
  for(var i = 0;i < radioLength;i++)
  {
   if(radio[i].checked)
   {
    radio[i].parentNode.setAttribute('class', 'active');
   }else {
    radio[i].parentNode.setAttribute('class', '');
   }
  }
 }
</script>

效果如下

js实现动态改变radio状态的方法

这里实现的是顶部boder的动态显示隐藏并且这里radio左侧默认的圆形按钮设为了隐藏。如果想要按钮不隐藏,需要作如下修改

<p class="group">
 <label class="active"><img src="images/delate_choose.png" name="image">
  <input type="radio" name="parent_radio" value="1" id="new_data" onclick="change()"/>
  最新资料</label>
 <label>
  <img src="images/delate_no_choose.png" name="image">
  <input type="radio" name="parent_radio" value="0" id="my_data" onclick="change()"/>
  我的资料</label>
 <label>
  <img src="images/delate_no_choose.png" name="image">
  <input name="parent_radio" type="radio" id="screen_data" value="0" onclick="change()"/>
  分类浏览</label>
 <label>
  <img src="images/delate_no_choose.png" name="image">
  <input type="radio" name="parent_radio" value="0" id="history_data" onclick="change()"/>
  浏览历史</label>
</p>

即在每一个raido类型的input前面加一个img(注意选中和未选中的区别),JS的change方法做以下修改

var radio = document.getElementsByName("parent_radio");
var img = document.getElementsByName("image");
/*用ByName是为了取到所有的radio*/
var radioLength = radio.length;
for(var i = 0;i < radioLength;i++)
{
 if(radio[i].checked)
 {
  img[i].src = "images/delate_choose.png";
  radio[i].parentNode.setAttribute('class', 'active');
 }else {
  img[i].src = "images/delate_no_choose.png";
  radio[i].parentNode.setAttribute('class', '');
 }
}

img的length肯定和radio的length一样,所以可以只取一个length。

效果如下:

js实现动态改变radio状态的方法

由于自己刚学的h5,很多东西不熟练,不敢说自己的方法就是正确方法,只是为了记录学习过程,所以把学到的一些东西写在这里,望大家不吝赐教。

这篇js实现动态改变radio状态的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript-Mozilla和IE中的一个函数直接量的问题分析
Aug 12 Javascript
基于JQuery的一句话搞定手风琴菜单
Sep 14 Javascript
jQuery选择器全面总结
Jan 06 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
jQuery实现图片文字淡入淡出效果
Dec 21 Javascript
javascript Promise简单学习使用方法小结
May 17 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
ES6知识点整理之函数数组参数的默认值及其解构应用示例
Apr 17 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 #Javascript
jquery radio 动态控制选中失效问题的解决方法
Feb 28 #jQuery
vue.js根据代码运行环境选择baseurl的方法
Feb 28 #Javascript
vue+element实现批量删除功能的示例
Feb 28 #Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 #Javascript
React 组件转 Vue 组件的命令写法
Feb 28 #Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 #Javascript
You might like
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
PHP7修改的函数
2021/03/09 PHP
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
巧用jQuery选择器提高写表单效率的方法
2016/08/19 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
Vue实现简单分页器
2018/12/29 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
bpython 功能强大的Python shell
2016/02/16 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
Django如何将URL映射到视图
2019/07/29 Python
Pytorch 使用不同版本的cuda的方法步骤
2020/04/02 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
Yahoo-PHP面试题4
2012/05/05 面试题
财务主管自我鉴定
2014/01/17 职场文书
新学期教师寄语
2014/04/02 职场文书
2014年质量工作总结
2014/11/22 职场文书
酒会邀请函
2015/01/31 职场文书
董事长致辞
2015/07/29 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
《打电话》教学反思
2016/02/22 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS