单选框选中分值之和小于100的校验(分组)~


要控制选中的单元格,对应所在一级菜单分值之和小于100,如,中国选择的分值之和小于100,日本选择的分值之和小于100;
现在已经实现,和大于100时,弹出提示,并且将当前选中单元格置为false。

但是一级菜单由列表改为分组时,DOM树就不规则了,这个时候该怎么实现以上校验呢?



贴下js,以便高手指点~
//alert(this.getValue());
var classOnes = [];   
var classTwos = [];   
var points = [];   
var $span = $('.fr-checkbox-checkon');  //获取选中的复选框  
var $tds = $("td").has($span); //定义选中复选框的所有单元格      
var $trs = $("tr").has($tds);   
for(var i=0; i<$trs.length;i++){   
var classOne = $("td:eq(0)",$($trs)).html();   //获取选中的A3单元格的值  
classOnes.push(classOne);     //将选中的值放到数组中  
var classTwo = $("td:eq(1)",$($trs)).html();   //获取选中的B3单元格的值  
classTwos.push(classTwo);   
var point = $("td:eq(2)",$($trs)).html();   //获取选中C3单元格的值  
points.push(point);      
}   
//alert(classOnes + ";" + classTwos + ";" + points);
//按一级分类求和
var index=0;
var classAry=[];
var sumAry=[];
sumAry[0]=0;
var aryIndex=0;
for(var i=0;i<classOnes.length;i++){
  if(classOnes==classOnes[index]){
    //alert(classOnes);
    classAry[aryIndex]=classOnes[index];
    sumAry[aryIndex]=parseInt(points)+parseInt(sumAry[aryIndex]);
  }else{
      //alert(classOnes);
    index=i;
    classAry[++aryIndex]=classOnes;
    sumAry[aryIndex]=parseInt(points);
   
  }
}
//alert(classAry+";"+sumAry);
//校验是否有超100,有则当前值置为否
for(var i=0;i<sumAry.length;i++){
    if(sumAry>100){
        FR.Msg.alert('提示','一级菜单:'+classAry+',选中项之和超过100,请重新选择!');
        this.setValue(false);
    }
}

FineReport左子娟 发布于 2017-1-8 10:14
回答问题
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
取消
  • 0关注人数
  • 466浏览人数
  • 最后回答于:2017-1-8 10:14
    活动推荐 更多
    热门课程 更多
    返回顶部