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 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
jquery将一个表单序列化为一个对象的方法
Jan 03 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
vue解决跨域路由冲突问题思路解析
Nov 03 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
发布订阅模式在vue中的实际运用实例详解
Jun 09 Javascript
vue中实现Monaco Editor自定义提示功能
Jul 05 Javascript
axios异步提交表单数据的几种方法
Aug 11 Javascript
Layui tree 下拉菜单树的实例代码
Sep 21 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新手上路(六)
2006/10/09 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
python一键升级所有pip package的方法
2017/01/16 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
python opencv读mp4视频的实例
2018/12/07 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
森林病虫害防治方案
2014/06/02 职场文书
2014年国庆标语
2014/06/30 职场文书
食品安全承诺书范文
2014/08/29 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
详解JVM系列之内存模型
2021/06/10 Javascript
如何通过一篇文章了解Python中的生成器
2022/04/02 Python