jQuery获取一个table下面的多个组的radio选中值,大神帮帮忙

sevenn1988 2020-12-21 05:19:08

开始我是用ajax一个个获取radio选中框的值,直接进行累加,后面出现了个bug,如下图

只有当全部选择完毕,才会显示数字。
想问问大家有没有什么好方法,想实现当用户点击时,获取选中框的分数进行累加,底部显示分数
...全文
5957 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_50944805 2020-12-23
  • 打赏
  • 举报
回复
引用 6 楼 weixin_50944805 的回复:
[quote=引用 2 楼 weixin_50944805 的回复:]

var col_len = $('#table th[scope="col"]').length
			$('#table input:radio').on('click',function(){
			  var rads = $('#table input:radio:checked')
			  if(col_len == rads.length){
					var sum = 0
					rads.each(function(i, r){
						sum = sum + Number(r.value)
					})
			    alert('总分:' + sum)
			  }
			})


var col_len = $('#table th[scope="col"]').length // 这里改一下 var col_len = $('#table th[scope="row"]').length
weixin_50944805 2020-12-23
  • 打赏
  • 举报
回复
引用 2 楼 weixin_50944805 的回复:

var col_len = $('#table th[scope="col"]').length
			$('#table input:radio').on('click',function(){
			  var rads = $('#table input:radio:checked')
			  if(col_len == rads.length){
					var sum = 0
					rads.each(function(i, r){
						sum = sum + Number(r.value)
					})
			    alert('总分:' + sum)
			  }
			})


你复制这里的代码。 $('#table input:radio:checked')这里是动态的,不要在外面定死
sevenn1988 2020-12-23
  • 打赏
  • 举报
回复
对的,要获取checked的value值,但我执行到if语句就没有反应,也没有报错了,如下

我需要单独每个类别的分数,以及最后的总分,所以最开始是直接获取value进行强制转换,觉得有点奇怪就是看不出来
锟斤拷锟斤拷 2020-12-22
  • 打赏
  • 举报
回复


var col_len = $('#table th[scope="col"]').length
			$('#table input:radio').on('click',function(){
			  var rads = $('#table input:radio:checked')
			  if(col_len == rads.length){
					var sum = 0
					rads.each(function(i, r){
                                                if(r.value != null){
						sum = sum + Number(r.value)}
					})
			    alert('总分:' + sum)
			  }
			})
锟斤拷锟斤拷 2020-12-22
  • 打赏
  • 举报
回复
是直接获取value的吗?加一个默认value是0试试
weixin_50944805 2020-12-22
  • 打赏
  • 举报
回复

var col_len = $('#table th[scope="col"]').length
			$('#table input:radio').on('click',function(){
			  var rads = $('#table input:radio:checked')
			  if(col_len == rads.length){
					var sum = 0
					rads.each(function(i, r){
						sum = sum + Number(r.value)
					})
			    alert('总分:' + sum)
			  }
			})


/*夜殇*/ 2020-12-21
  • 打赏
  • 举报
回复
方法一:全部选择完毕才显示分数,那就每点一个就将对应的值加到一个数组里,所有点击完之后对数组里的数字进行累加操作 方法二:声名var num=0;然后每点击一次值为num=num+你点击的对应数字,所有点完后将num这个值赋给总分

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧