JS模拟调查问卷之单选按钮

最近项目中有一个类似于调问卷评分的需求,使用JS实现分数的加减以及总分。

项目中的UI库使用的是LayUI,以下为具体代码。

    var sum = 0;
    var myMap = {};// Json对象用来存储按钮的name和value
  // LayUI中的单选按钮单击事件的写法
 form.on('radio(radio)', function (data) {
            // 获取元素的name
            var radioName = $(this).attr('name');
            // 有当前key 更新数据 反之,添加数据
            if (myMap.hasOwnProperty(radioName)) {
                var odd = parseInt($(this).val());
                var oldValue =myMap[radioName];
                // 先减去同一name的值,再执行加分的操作
                sum -= parseInt(oldValue);
                sum += odd;
                // 更新分数值
                myMap[radioName] = odd;
            }
            else {
                var newval = parseInt($(this).val());
                // 计算总分
                sum = parseInt(sum) + parseInt(newval);
                // 将name及value以键值对的方式存入Json对象
                myMap[radioName] = newval;
            }
        });
复制代码

页面加载完毕之后初始化Json,适用于从后台获取数据时使用。

         // each遍历被选中按钮,将name和value存入Json
        $("input[type='radio']:checked").each(function (i, e) {
            myMap[$(this).attr('name')] = parseInt($(this).attr("title"));
        });
复制代码

效果图:

单选按钮特别适合这种有固定的等级及分数的问卷。

下篇文章将使用复选框实现,复选框适用于有多选的场景

转载于:https://juejin.im/post/5ba339f45188255c43229458

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<p>layui是一款采用自身模块规范编写的前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui首个版本发布于2016年金秋,她区别于那些基于MVVM底层的UI框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。</p><p> </p><p>layui前端框架更新日志:</p><p>v2.6.8</p><p>[重写] sort 方法,以便对数字、非数字及混合类等所有内容的排序进行支持</p><p>[新增] dropdown 组件的 align 参数,用于控制下拉菜单水平对齐方式(支持 left、center、right),默认 left</p><p>[新增] table 组件的 escape 参数,用于是否开启 xss 字符过滤(默认 false)</p><p>[加强] table 组件的自定义模板功能,返回 LAY_COL 字段,可得到当前列的表头配置信息</p><p>[加强] form 组件对验证不通过的表单项自动定位到可视区域,不再是只对输入框自动获焦定位 </p><p>[加强] form 组件对 url 的验证</p><p>[修复] form 相关 css 的 layui-checkbox-disabled 书写错误(之前为 disbaled) </p><p>[修复] form 组件的 select option 内容出现换行时的样式异常问题</p><p>[修复] colorpicker 颜色选择组件在 Firefox 下选择颜色时的若干兼容问题</p><p>[加强] colorpicker 组件的坐标定位计算方式</p><p>[修复] 低版本 ie 若干报错问题</p>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值