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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
jQuery类选择器用法实例
Dec 23 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
Angularjs整合微信UI(weui)
Mar 15 Javascript
全面了解javascript中的错误处理机制
Jul 18 Javascript
javascript实现二叉树的代码
Jun 08 Javascript
基于canvas粒子系统的构建详解
Aug 31 Javascript
浅谈JavaScript作用域和闭包
Sep 18 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
vue计算属性get和set用法示例
Feb 08 Javascript
vue路由缓存的几种实现方式小结
Feb 02 Javascript
jQuery实现朋友圈查看图片
Sep 11 jQuery
快速了解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 变量未定义等错误的解决方法
2011/01/12 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
php array_map()函数实例用法
2021/03/03 PHP
js删除所有的cookie的代码
2010/11/25 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
python3图片转换二进制存入mysql
2013/12/06 Python
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
python机器学习库常用汇总
2017/11/15 Python
Python如何实现转换URL详解
2019/07/02 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
Bootstrap 学习分享
2012/11/12 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
C语言面试题
2015/10/30 面试题
刘胡兰的英雄事迹材料
2014/02/11 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
给学校建议书范文
2014/05/13 职场文书
2014年终工作总结范本
2014/12/15 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js