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 相关文章推荐
js+JQuery返回顶部功能如何实现
Dec 03 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
Dec 31 Javascript
js图片轮播特效代码分享
Sep 07 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
Nov 21 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
Jan 04 Javascript
微信小程序 数组中的push与concat的区别
Jan 05 Javascript
EasyUI实现下拉框多选功能
Nov 07 Javascript
ajax前台后台跨域请求处理方式
Feb 08 Javascript
更改BootStrap popover的默认样式及popover简单用法
Sep 13 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
vue 动态表单开发方法案例详解
Dec 02 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
PHPCMS的使用小结
2010/09/20 PHP
php实现memcache缓存示例讲解
2013/12/04 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
js文字滚动停顿效果代码
2008/06/28 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
2015/05/06 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
解决vue单页面应用中动态修改title问题
2019/06/09 Javascript
[02:57]DOTA2亚洲邀请赛小组赛第四日 赛事回顾
2015/02/02 DOTA
Python最长公共子串算法实例
2015/03/07 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
Hotels.com印度:酒店预订
2019/05/11 全球购物
在C#中如何实现多态
2014/07/02 面试题
面试求职的个人自我评价
2013/11/16 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
起诉书范文
2015/05/20 职场文书
母亲去世追悼词
2015/06/23 职场文书
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技