js hashtable checkbox判断

Array.prototype.remove=function(i){
if(isNaN(i) || i<0 || i>=this.length){
  return ;
}
var rv=this[i];
for(;i<this.length-1;i++){
  this[i]=this[i+1];
}
this.pop();
return rv;
}
var keyArr;
var valueArr;
function HashTable_put(key,value){
var i=0;
for(;i<keyArr.length;i++){
  if(keyArr[i]==key){
   return false;
  }
}
keyArr.push(key);
valueArr.push(value);
return true;
}
function HashTable_set(key,value){
var i=0;
for(;i<keyArr.length;i++){
  if(keyArr[i]==key){
   valueArr[i]=value;
   return true;
  }
}
return false;
}
function HashTable_get(key){
if(typeof(key)=="number" && parseInt(key)==key && key+""==key){
  return HashTable_get_i(key);
}else if(typeof(key)=="string"){
  return HashTable_get_s(key);
}else{
  return ;
}

}
function HashTable_get_i(key){
if(valueArr.length<=key){
  return ;
}else{
  return valueArr[key];
}
}
function HashTable_get_s(key){
var i=0;
for(;i<keyArr.length;i++){
  if(keyArr[i]==key){
   break;
  }
}
if(i==keyArr.length){
  return ;
}

return valueArr[i];
}
function HashTable_remove(key){
if(typeof(key)=="number" && parseInt(key)==key && key+""==key){
  return HashTable_remove_i(key);
}else if(typeof(key)=="string"){
  return HashTable_remove_s(key);
}else{
  return ;
}
}
function HashTable_remove_i(key){
keyArr.remove(key);
return valueArr.remove(key);
}
function HashTable_remove_s(key){
var i=0;
for(;i<keyArr.length;i++){
  if(keyArr[i]==key){
   break;
  }
}
if(i==keyArr.length){
  return ;
}
keyArr.remove(i);
return valueArr.remove(i);
}
function HashTable_getKeys(){
return keyArr;
}
function HashTable_getValues(){
return valueArr;
}
function HashTable_getLength(){
return valueArr.length;
}
function HashTable(){
keyArr=new Array();
valueArr=new Array();
this.put=HashTable_put;
this.set=HashTable_set;
this.get=HashTable_get;
this.remove=HashTable_remove;
this.getKeys=HashTable_getKeys;
this.getValues=HashTable_getValues;
this.getLength=HashTable_getLength;
}
  $(function() {
$("#tbSave").click(function() {
var selChk= document.getElementsByName("chkTypes");
var count =0;
var a=new HashTable();
// var b= new HashTable();
for(var i=0;i<selChk.length;i++){//对选择的品牌构造Map

if(selChk[i].checked){
var cafN1    =Trim(selChk[i].parentElement.parentElement.children(1).children(0).value);
var typeName =Trim(selChk[i].parentElement.parentElement.children(2).children(0).value);

var temp=a.get(cafN1);

if(temp==undefined){

a.put(cafN1,1);

}else{
//alert(cafN1);
temp+=1;
a.set(cafN1,temp);

}

var tempb= a.get(typeName);

if(tempb==undefined){
    a.put(typeName,1)

}else{
tempb+=1;
a.set(typeName,tempb);

}

count++

}

}



var sel= document.getElementsByName("sel");
var bidType="";
for(var j=0;j<sel.length;j++){
if(sel[j].checked){
if(sel[j].value=="1"){
   if(count==0){
   alert("请至少选择一种品牌");
   return false;
   }
   if(count >1){
   alert("只能选择一种品牌");
   return false;
  
  
   }
   bidType="单品牌";

}else{

if(count<9){
   alert("请至少选择9种品牌");
   return false;
   }
   if(count >9){
   alert("只能选择9种品牌");
   return false;
  
  
   }
    bidType="多品牌";

}

$("#ordersAction_bidPlans_bidPlanType").val(sel[j].value);

}


}

var chks= document.getElementsByName("chk");
    var kCount=0;
   
      for(var k=0;k<chks.length;k++){
   
    if(chks[k].checked){
    kCount++;
    }
    }
     
      if($("#ordersAction_bidPlans_bidPlanType").val()=="1"){
   if(kCount==0){
   alert("请至少选择一种类别");
   return false;
   }
   if(kCount >1){
   alert("只能选择一种类别");
   return false;
  
  
   }
  

}else{

if(kCount<3){
   alert("请至少选择三种类别");
   return false;
   }
   if(kCount >3){
   alert("只能选择三种类别");
   return false;
  
  
   }

}
   

    for(var k=0;k<chks.length;k++){
   
    if(chks[k].checked){
    var textT=chks[k].parentElement.children(1).innerHTML;
   
    var tCount= a.get(Trim(textT));
   
      if(tCount==undefined){
     
      alert("选定的品牌中不存在类别:"+textT+",请重新选定类别");
      return false;
      }
      if($("#ordersAction_bidPlans_bidPlanType").val()=="2"){//多品牌需要进一步验证类别个数
     
       if(tCount>3){
     
      alert(textT+":类别的品牌只能选择3种!")
      return false;
     
        }if(tCount>3){
       
        alert(chks[k].text+":类别的品牌至少选择3种!")
        return false;
       
        }
      }
   
     
    }
   
    }
   
   



var aValues= a.getValues();
    var aKeys= a.getKeys();
   // alert(aKeys.length);
    for(var t=0;t<aValues.length;t++){
    //alert(aValues[t]+aKeys[t]);
      if($("#ordersAction_bidPlans_bidPlanType").val()=="2"){//多品牌需要进一步验证品牌个数
      if(aValues[t]>3){
     
      alert(aKeys[t] +":品牌只能选择三种!")
      return false;
      } if (aValues[t]<3){
     
      alert(aKeys[t] +":品牌至少选择三种!")
      return false;
      }
      }
   
   
    }


  
   
   
   
  



if(count==0){
alert("请至少选择一种品牌");
return false;
}
var bidId=$("#ordersAction_bidPlans_bidId").val();


    var confirmBox= confirm("确认保存选定的品牌吗?");
if(confirmBox){
$("#ordersAction_action").val("saveBidPlans");
$(":form").submit();

window.returnValue=bidType+";"+bidId;
}
     
});

<tr vAlign="top" align="center" >
<td align="center"  >
<table  cellSpacing="0"  cellPadding="0" width="100%" bgColor="#f2f4f7" border="0">
<tr height="25">
<td vAlign="bottom">
<table   border="0" cellSpacing="1" cellPadding="1" width="100%" class="table" >

<tr vAlign="bottom" height="26" class="tr_3">
<td vAlign="middle" align="left"  width="130">品目:${bidPlans.catName} <s:hidden name="catNo" /></td>
  <td> 单品牌:<input type="radio"  name="sel"  value="1" /></td>
<td >多品牌:<input type="radio" name="sel" checked value="2" /></td>

</tr>

<tr vAlign="bottom" height="26" class="tr_3">
<td  vAlign="middle" align="left"  width="130">类别:&nbsp;</td>
   <td colspan="2">
    <table  cellSpacing="10" cellPadding="10" >
   <s:checkboxlist name="chk"  theme="xhtml"  template="customcheckboxlist.ftl" list="typeList" listKey="typeId" listValue="typeName" ></s:checkboxlist>

</table>
  
   </td>
</tr>
<tr id="BtnTabTr">


<td colspan="3" align="center">


</td>

</tr>















</table>
</td>
</tr>
<%--<% if (UsrType="2") then %>
<tr height="525">

<tr height="488">
<%end if%>
--%>
<tr>
<td vAlign="top" align="center" width="100%"  >
<table class="OrderBodyTop" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"
cellSpacing="0" cellPadding="0" width="100%">
<tr >
<td class="OrderCellItem" align="center" width="681">
  <s:if test="%{chkTypes!=null}">
<b>已选定的品牌如下:</b>
</s:if>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td vAlign="top" align="center" width="100%">
<table class="OrderBodyTop" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"
cellSpacing="0" cellPadding="0" width="100%">
<tr height="25">
<td class="OrderCellTop" align="left" width="80" >&nbsp;选择<br>&nbsp;&nbsp;<input type='checkbox' name='selcAll' id='selcAll' />
</td>
<td class="OrderCellTop" align="center" width="80" >&nbsp;品牌
</td>
<td class="OrderCellTop" align="center" width="50" >&nbsp;类别&nbsp;
</td>
<td class="OrderCellTop" align="center" width="248" >型号<br>

</td>

</tr>
<s:iterator value="bidPlansDtl" status="sta" var="x">
    <tr height="25" id='${sta.count+2}'class="tr_3" >
   
<td class="OrderCellBt"  width="40" align="left">
<s:property value="%{#sta.count}"/><input  name="chkTypes" type="checkbox"  value="${cafNo}" />
                      <s:hidden name="bidPlansDtl[%{#sta.index}].cafNo"/>
</td>
<td class="OrderCellItem" align="center">
<s:textfield name="bidPlansDtl[%{#sta.index}].cafN1"  readonly ="true" cssClass="NoneBorder"  cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: left"/>
</td>

<td class="OrderCellItem" align="center">
<s:textfield name="bidPlansDtl[%{#sta.index}].typeName"  cssClass="NoneBorder"  cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: left"/>
<s:hidden name="bidPlansDtl[%{#sta.index}].typeId"/>
</td>

<td class="OrderCellItem" align="center"><s:textfield name="bidPlansDtl[%{#sta.index}].cafN2"  cssClass="NoneBorder"   cssStyle="WIDTH: 100%; HEIGHT: 18px; TEXT-ALIGN: center" />
</td>





</tr>
</s:iterator>
</table>





</td>
</tr>

你可能感兴趣的:(Hashtable)