`

js hashtable checkbox判断

    博客分类:
  • JS
 
阅读更多
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>
分享到:
评论

相关推荐

    Js hashTable(哈希表)

    JS版的哈希表,仿C#版,但有些功能更好用

    javascript hashtable 修正版 下载

    从提供的文件内容来看,该文档主要介绍了JavaScript中一种名为"hashtable"的数据结构的修正版,它允许用户在JavaScript环境中使用类似散列表或哈希表的数据结构。以下是根据文件内容总结的知识点: 1. **JavaScript...

    一个用javascript写的hashtable类

    一个用javascript写的hashtable类

    C# json 转hashtable

    在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输。它以其简洁、易于阅读和编写的特点,成为开发者们首选的序列化方式。与此相关的,`...

    C#中哈希表(HashTable)用法实例详解(添加/移除/判断/遍历/排序等)

    - **判断是否包含特定键**:`ht.Contains(key);` 4. **实例代码** 下面是两个简单的C#程序示例,演示如何创建和操作`HashTable`。 示例1: ```csharp using System; using System.Collections; class ...

    WinFormHashTable最简单用法,.net hashtable ,hashtable ,hashtable用法

    哈希表(Hashtable)是.NET框架中的一种常用数据结构,主要用作键值对存储,它提供了快速的数据存取方式。在WinForm应用程序中,我们可能会利用Hashtable来管理各种对象,尤其是在需要高效查找和操作数据时。下面将...

    HashTable

    《深入解析HashTable:C语言实现的精髓》 在计算机科学中,哈希表(HashTable)是一种数据结构,它实现了关联数组的抽象数据类型,能够快速地进行查找、插入和删除操作。哈希表通过将键(Key)映射到表中的一个位置...

    JAVASCRIPT HashTable

    ### JavaScript HashTable 实现解析 #### 一、引言 在计算机科学中,哈希表(HashTable)是一种常用的数据结构,它通过一个称为哈希函数的机制将键映射到数组的一个位置上,从而实现对数据的高效存取。本文将深入...

    hashMap和hashTable的区别

    - **HashTable**:提供了 `contains` 方法来判断是否存在某个值(已过时),而 `containsKey` 和 `containsValue` 是 `Map` 接口的方法。 8. **扩展性**: - **HashMap**:在 Java 8 中引入了并行化能力,通过 `...

    asp.net遍历hashtable

    在ASP.NET中,Hashtable是一种常用的数据结构,它是一个键值对集合,允许程序员存储和检索对象。本篇文章将深入探讨如何在ASP.NET中遍历Hashtable,以及相关的重要知识点。 首先,理解Hashtable的基本概念至关重要...

    HashMap和HashTable的区别和不同

    ### HashMap与HashTable的区别详解 #### 引言 在Java编程中,`HashMap`与`HashTable`作为两种常用的数据结构,经常被用来存储键值对数据。尽管它们在功能上相似,但在实现细节、性能表现以及使用场景方面存在显著...

    hashtable存储数据.rar

    在Java编程语言中,`Hashtable`是一个非常基础且重要的数据结构,它属于集合框架的一部分,提供了键值对(key-value pairs)的存储功能。`Hashtable`类是线程安全的,意味着在多线程环境下,它能确保数据的一致性和...

    C#-Hashtable应用

    Hashtable是C#编程语言中的一种内置数据结构,属于.NET Framework的System.Collections命名空间。它是一个基于散列的键值对集合,允许程序员快速查找、添加和删除元素。在本篇文档中,我们将深入探讨如何在C#中有效...

    HashMap和HashTable底层原理以及常见面试题

    HashMap和HashTable底层原理以及常见面试题 HashMap和HashTable是Java中两个常用的数据结构,都是基于哈希表实现的,但它们之间存在着一些关键的区别。本文将深入探讨HashMap和HashTable的底层原理,并总结常见的...

    HashMap与HashTable区别

    ### HashMap与HashTable的区别 在Java编程语言中,`HashMap`和`HashTable`是两种非常重要的数据结构,它们都实现了`Map`接口,并提供了键值对的存储方式。这两种数据结构虽然相似,但在实现细节和使用场景上存在...

    hashtable和hashmap的区别

    ### Hashtable和HashMap的区别 在Java编程语言中,`Hashtable`和`HashMap`是两种非常重要的数据结构,它们都实现了`Map`接口,用于存储键值对。尽管它们有着相似的功能,但在实现细节和应用场景上存在显著差异。接...

    java Hashtable的泛型化

    在Java编程语言中,`Hashtable`是`Collections`框架的一部分,它是一个同步的键值对存储容器。在早期的Java版本中,`Hashtable`并没有直接支持泛型,这意味着你可以在其中存储任何类型的键(`Object`)和值(`Object...

    hashmap与hashtable区别

    ### HashMap与Hashtable的区别 在Java编程语言中,`HashMap`和`Hashtable`是两种非常重要的数据结构,它们都用于存储键值对。然而,在实际应用过程中,这两种数据结构有着本质的不同,下面将详细介绍这些差异。 ##...

    HashMap与HashTable和HashSet的区别

    ### HashMap与HashTable和HashSet的区别 #### 一、概述 在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程...

    使用JavaScript数组模拟Java的Hashtable集合

    于是,本人使用JavaScript的数组模拟Hashtable集合,说明JavaScript数组的特别之外。 环境:Windows XP Professional, IE 6.0 阅读对象:所有学习JavaScript的学员。 注:本示例代码注释非常详细,请仔细阅读体会...

Global site tag (gtag.js) - Google Analytics