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 相关文章推荐
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
JS中Date日期函数中的参数使用介绍
Jan 02 Javascript
js导航栏单击事件背景变换示例代码
Jan 13 Javascript
使用控制台破解百小度一个月只准改一次名字
Aug 13 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
Nov 02 Javascript
PHP 实现一种多文件上传的方法
Sep 20 Javascript
修改vue+webpack run build的路径方法
Sep 01 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
Feb 27 jQuery
vue组件创建的三种方式小结
Feb 03 Javascript
vue实现前端分页完整代码
Jun 17 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
Sep 10 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 多进程 解决难题
2009/06/22 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
用 JSON 处理缓存
2007/04/27 Javascript
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python生成随机数组的方法小结
2017/04/15 Python
使用requests库制作Python爬虫
2018/03/25 Python
python实现录音小程序
2020/10/26 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
求职简历自荐信
2013/10/20 职场文书
语文教育专业推荐信范文
2013/11/25 职场文书
中学生评语大全
2014/04/18 职场文书
党员群众路线承诺书
2014/05/20 职场文书
大学活动总结模板
2014/07/10 职场文书
作风转变心得体会
2014/09/02 职场文书
社区灵活就业证明
2014/11/03 职场文书
安全责任书
2015/01/29 职场文书
公司庆典主持词
2015/07/04 职场文书
红白喜事主持词
2015/07/06 职场文书
Java实现多文件上传功能
2021/06/30 Java/Android