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 相关文章推荐
Mootools 1.2教程 Tooltips
Sep 15 Javascript
JSQL 批量图片切换的实现代码
May 05 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 Javascript
基于jquery的监控数据是否发生改变
Apr 11 Javascript
jQuery中:button选择器用法实例
Jan 04 Javascript
实例详解JavaScript获取链接参数的方法
Jan 01 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
简单实现bootstrap选项卡效果
Feb 08 Javascript
JS实现双击内容变为可编辑状态
Mar 03 Javascript
JS触摸与手势事件详解
May 09 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
微信小程序使用npm包的方法步骤
Aug 13 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
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
javascript实现继承的简单实例
2015/07/26 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
小程序两种滚动公告栏的实现方法
2019/09/17 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
Grow Gorgeous美国官网:只要八天,体验唤醒毛囊后新生的茂密秀发
2018/06/04 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
幼儿园门卫制度
2014/01/29 职场文书
精彩的广告词
2014/03/19 职场文书
八项规定对照检查材料
2014/08/31 职场文书
布达拉宫导游词
2015/02/02 职场文书
个人催款函范文
2015/06/23 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
高一军训感想
2015/08/07 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
python数字转对应中文的方法总结
2021/08/02 Python