关于radio 单选框在项目中的一些心得


如图,是一个审核题目的功能,在点击审核题目后页面改变(没有跳转到新页面),并且出现了题目类型的单选框radio 此时需要做的功能就是当用户点击选择题时,下方的信息版面会多出一个题目选项这一栏。

采用div 属性display ,当display属性为none时,该div被隐藏

思路是,默认div为隐藏,当点击radio按钮时进行控制将属性改为空,使其显示,点击其他按钮时,div重新隐藏。

遇到问题及解决方法:

1.采用自启动函数进行控制,并使用jQuery进行函数绑定,js代码如下

(

function()

{

var radios = document.getElementsByName("questions_type");

//根据 name集合长度 遍历name集合  

for(var i=0;i<radios.length;i++)  

 {   

//判断那个单选按钮为选中状态  

 if(radios[i].checked)  

 {  

 //弹出选中单选按钮的值  

alert(radios[i].value);  

 }    

}   

}()

);

上方法只是测试代码,因此只弹出选中按钮做测试,测试过后发现该方法并不能实现需要,查其原因:在刷新页面时自启动函数启动但是由于页面触发需要点击审核按钮,导致点击审核按钮之后该方法已经失效,所以无法进行改变,只好放弃该方法。

2.给radio按钮添加onclick按钮直接触发,代码如下:

  <input type="radio" name="questions_type" value="s" οnclick="a()"/>选择题
  <input type="radio" name="questions_type" value="c" οnclick="a()"/>填空题
  <input type="radio" name="questions_type" value="q" οnclick="a()"/>编程题

function a()
{
var radios = document.getElementsByName("questions_type");
//根据 name集合长度 遍历name集合  
    for(var i=0;i<radios.length;i++)  
    {   
        //判断那个单选按钮为选中状态  
        if(radios[i].checked&&radios[i].value=="s")  
        {  
            document.getElementById("question_s").style.display="";
            break;
       }else
       {
document.getElementById("question_s").style.display="none";

    }   
}

该方法经测试已经可用,需要注意的是在for循环时必须加上break;否则可能会导致选择第一个时已经将题目选项栏调出来,之后进行循环时又将其属性改为隐藏导致属性被覆盖掉出现误差,其次,为何要在填空题和编程题的选项中也触发方法,是因为如果只在选择题选项中触发的话,用户点击选择题之后再点击填空题或编程题时,题目选项该栏仍然存在。

以上是我个人在项目过程中的一些小心得,希望记录下来,在以后的学习中进行积累。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值