radio切换场景和状态标识的问题

 

 

//有这样的使用场景,消费后有一笔账单,账单中有消费明细,消费明细要和还款相互匹配,
//如果前端用人工去确认,那么明细要和还款明细一对一匹配,如果选择了还款明细,那么下一笔消费明细中就不显示已经使用过的还款明细
//consumeId,payId每次选择后,就会形成这样的组合,并且标识已经选择的明细记录
//用consumeId-payId这样的标识作为标志,如果使用单独的标识就会出问题

//1.选择payDetailRadio时坐标识,包括切换radio
var consumeIdAndPayIdMark=[];
 function selectBankFlowRadio(consumeId){
  var payId =  $("input[name='pay']:checked").attr('id');
  var len=consumeIdAndPayIdMark.length;
  var newConsumeIdAndPayId=consumeId+"-"+payId;
  var flag=false;
  var index;
  index=consumeIdAndPayIdMark.indexof(newConsumeIdAndPayId);
  if(index>-1){
    flag=true;
  }
  //查询标识中是否已经存在这样的consumeId配对,如果下次切换payId时,先把这个删掉,防止出现一对二的情况
  for(var i=0;i<consumeIdAndPayIdMark.length;i++){
     var temp=consumeIdAndPayIdMark[i];
   if(temp.split("-").indexof(consumeId)>-1){
    consumeIdAndPayIdMark.remove(temp);
   }
  }
  if(!flag){
   consumeIdAndPayIdMark.push(newConsumeIdAndPayId);
  }
 }

//取消radio选择按钮应该做的事情
 function cancelRadioSelect(consumeId){
  var payId =$("input[name='pay']:checked").attr("id");
  
  var newConsumeIdAndPayId=consumeId+"-"+payId;
  if(consumeIdAndPayIdMark.indexof(newConsumeIdAndPayId)>-1){
   consumeIdAndPayIdMark.remove(newConsumeIdAndPayId);
   //取消选择的状态
   $("input[name='pay']:checked").attr("checked",false);
  }
 }
//在每次做payInfo渲染的时候通过状态标识,来进行渲染

function showPayInfo(consumeId,payId){

 var newConsumeIdAndPayId=consumeId+"-"+payId';
var used="";
if(consumeIdAndPayIdMark.indexof(newConsumeIdAndPayId)>-1){
 console.log("already choose "+newConsumeIdAndPayId+"oneToOne...");
    console.log("this info message radio checked");
}else{
 //上面标识了已经选择的一对一关系
 for(var i=0;i<consumeIdAndPayIdMark.length;i++){
  if(consumeIdAndPayIdMark[i].split("-").indexof(payId)>-1){
   //这里要查找到已经使用过的payId,做标识
   used=true;

  }
 }
 if(!used){
  //如果没有使用过,则显示payInfo
   console.log("this pay message radio unchecked");
 }else{
   console.log("this pay message hide,show in other consumeInfo");
 }
}

}


//对数组的操作

 Array.prototype.indexof=function(val){
  for(var i=0;i<this.length;i++){
   if(this[i]==val) return i;
  }
  return -1;
 };
 
 Array.prototype.remove=function(val){
  var index=this.indexof(val);
  if(index>-1){
   this.splice(index,1);
  }
 };

转载于:https://my.oschina.net/iioschina/blog/1505462

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值