`

jQuery 操作checkbox翻页保存选中状态

 
阅读更多

js:

$(function() {	
 var prodSelectedNames = $("#hiddenProductNames");
 var prodSelectedIds = $("#hiddenProductIds");
	if(prodSelectedIds.val()!=""){
	var oldSelected = prodSelectedIds.val().split(',');
	$('input:checkbox[name=ids]').each(function() {
		if ($.inArray($(this).val(), oldSelected) != -1)
			this.checked = true;
	});
	}

	$('input:checkbox[name=ids]').click(function() {	
	 if(prodSelectedIds.val()!="" ){
		 var prodIdsValues = prodSelectedIds.val().split(',');
		 var prodNameValues=prodSelectedNames.val().split(',');
		 var i = $.inArray($(this).val(), prodIdsValues);
		 if (this.checked) {
			if (i == -1){
				prodIdsValues.push($(this).val());
				prodNameValues.push($(this).attr("productName"));
				}
		} else {
		if (i != -1) {
		prodIdsValues.splice(i, 1);
		prodNameValues.splice(i, 1);
			}
		}
		prodSelectedNames.val(prodNameValues);
		prodSelectedIds.val(prodIdsValues);
	}else if(prodSelectedIds.val()=="" && this.checked){
	    prodSelectedIds.val($(this).val());
	    prodSelectedNames.val($(this).attr("productName"));
	    }	
	});

    $('#queryName').bind('keypress',function(event){
            if(event.keyCode == "13") {
         return false;
            }
        });
})

function addProduct() {
    saveChangeProd();
    $("#productNames").val($("#hiddenProductNames").val());
	$("#productIds").val($("#hiddenProductIds").val());
	$("#contain").empty();
	closeDialog('contain'); 
}

// function clearProduct(){
//  $("#productDiv input[name='ids']").attr("checked",false);
// }

 function _gotoPage(pageNo) {
    saveChangeProd();
 	var queryName=$("#queryName").val();
 	var pageNo=pageNo;
 	showProduct(queryName,pageNo);	
	
 }


 function saveChangeProd(){
  var prodSelectedNames = $("#hiddenProductNames");
  var prodSelectedIds = $("#hiddenProductIds");
  	 $("#productDiv input[name='ids']").each(function(i,ele){
 	 if(prodSelectedIds.val()!="" ){
		 var prodIdsValues = prodSelectedIds.val().split(',');
		 var prodNameValues=prodSelectedNames.val().split(',');
		 var i = $.inArray($(this).val(), prodIdsValues);
		 if (this.checked) {
			if (i == -1){
				prodIdsValues.push($(this).val());
				prodNameValues.push($(this).attr("productName"));
				}
		} else {
		if (i != -1) {
		prodIdsValues.splice(i, 1);
		prodNameValues.splice(i, 1);
			}
		}
		prodSelectedNames.val(prodNameValues);
		prodSelectedIds.val(prodIdsValues);
	}else if(prodSelectedIds.val()=="" && this.checked){
	    prodSelectedIds.val($(this).val());
	    prodSelectedNames.val($(this).attr("productName"));
	    }	
	    });
 }

html

<div id="productDiv">
<form action="v_product_list.do" method="post" style="padding-top:5px;">
<@s.m "cmsProduct.name"/>:
 <input type="text" name="queryName" id="queryName" value="${queryName!}" style="width:150px" />
 <input class="query" type="button" id="queryButton" value="<@s.m "global.query"/>" onclick="_gotoPage($('#_goPs').val());"/>
 <input type="hidden" name="pageNo" value="${pageNo!}" id="pageNo"/>
</form>
<@p.table value=productList;cmsProduct,i,has_next><#rt/>
	<@p.column align="center" width="20%" title="<input type='checkbox' onclick='Pn.checkbox(\"ids\",this.checked)'/>" width="30%">
		<input type='checkbox' name='ids' value='${(cmsProduct.id)}' productName="${(cmsProduct.name)!}"/><#t/>
	</@p.column><#t/>
	<@p.column code="产品名称" width="40%" align="center">${cmsProduct.name!}</@p.column><#t/>   
	<@p.column code="图片" width="40%" align="center">
	<img id="preImg1" src="${(cmsProduct.productImg)!}" alt="预览" style="width:100px;height:70px;background-color:#CCCCCC;border:1px solid #333">
	</@p.column><#t/>   
</@p.table>

<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td align="center" class="pn-sp">
	共 ${pagination.totalCount} 条
	每页<input type="text" value="${pagination.pageSize}" style="width:30px" onfocus="this.select();" onblur="$.cookie('_cookie_page_size',this.value,{expires:3650});" onkeypress="if(event.keyCode==13){$(this).blur();return false;}"/>条
	<input class="first-page" type="button" value="首 页" onclick="_gotoPage('1');"<#if pagination.firstPage> disabled="disabled"</#if>/>
	<input class="pre-page" type="button" value="上一页" onclick="_gotoPage('${pagination.prePage}');"<#if pagination.firstPage> disabled="disabled"</#if>/>
	<input class="next-page" type="button" value="下一页" onclick="_gotoPage('${pagination.nextPage}');"<#if pagination.lastPage> disabled="disabled"</#if>/>
	<input class="last-page" type="button" value="尾 页" onclick="_gotoPage('${pagination.totalPage}');"<#if pagination.lastPage> disabled="disabled"</#if>/>
	当前 ${pagination.pageNo}/${pagination.totalPage} 页 转到第<input type="text" id="_goPs" style="width:50px" onfocus="this.select();" onkeypress="if(event.keyCode==13){$('#_goPage').click();return false;}"/>页
	<input class="go" id="_goPage" type="button" value="转" onclick="_gotoPage($('#_goPs').val());"<#if pagination.totalPage==1> disabled="disabled"</#if>/>
</td></tr></table>
<p></p>
<div style="text-align:center;">
	<input type="button" class="button" value="确定" onclick="addProduct();"/>  
    <input type="button" class="button" class="button" value="取消" onclick="closeDialog('contain')"/>
<!--     <input type="button" value="清除" onclick="clearProduct()"/> -->
    </div>
</div>

java:对比修改前和修改后的数据然后保存新增数据

public void updateCompanyProduct(CmsCompany cmsCompany,String prodIds){
		Integer id = cmsCompany.getId();
		List<Integer> oldProd=dao.findProdIds(id);
		List<Integer> newProd= new ArrayList<Integer>();
		List<Integer> copyProd= new ArrayList<Integer>();
		if(StringUtils.isNotBlank(prodIds)){
			for (String proId : prodIds.split(",")) {
				newProd.add(Integer.valueOf(proId));
				copyProd.add(Integer.valueOf(proId));
			}
		}
		copyProd.retainAll(oldProd);
		//System.out.println(copyProd);
		newProd.removeAll(copyProd);
		oldProd.removeAll(copyProd);
		for (Integer prodId : oldProd) {
			dao.deleteCompanyProduct(id,prodId);

		}
		for (Integer prodId : newProd) {
			dao.saveCompanyProduct(prodId,id);
		}
		
	}



分享到:
评论

相关推荐

    jQuery操作checkbox并获取选中值

    本文将详细讲解如何使用jQuery来操作checkbox,并实现全选、全不选、反选以及获取选中值这四个核心功能。 ### 一、jQuery选择器与checkbox操作 在jQuery中,我们可以使用不同的选择器来选取页面上的checkbox元素。...

    JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值

    JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值

    js实现翻页后保持checkbox选中状态的实现方法

    所以checkbox为false。...把选中的checkbox中的id,其中包括模块id,操作id,拼接成一个字符串,然后把字符串传递到action中。 每次调用此页面时,首选调用action中的选中的id字符串,然后根据在id字符串的基

    jquery获取checkbox选中的值

    在本文中,我们将深入探讨如何使用jQuery来获取checkbox选中的值,包括全选、取消全选、反选以及选中奇数行的操作,并讲解如何获取选中的值。 首先,我们需要引入jQuery库。在`1.html`文件中,我们看到包含了一个名...

    翻页后保存checkbox选中状态

    "翻页后保存checkbox选中状态"这个话题聚焦于一种常见的用户体验优化问题。在网页或应用程序中,用户可能需要浏览多页数据,例如表格或者列表,而这些数据通常通过分页进行展示。当用户在某一页选中了特定的checkbox...

    jquery 对checkbox的操作

    本文将详细探讨如何使用jQuery对checkbox进行操作,这些操作包括选择、取消选择、检查状态以及实现更复杂的交互效果。 一、jQuery选择checkbox 在jQuery中,我们可以使用不同的选择器来选取checkbox元素。例如,`$...

    解决ListView嵌套CheckBox滑动时选中状态错乱

    然而,当ListView内部嵌套CheckBox等可交互组件时,常常会遇到一些问题,特别是滑动过程中选中状态错乱的现象。这个问题主要是由于ListView的复用机制导致的,即ListView在滚动时会复用已滑出屏幕的列表项,如果不...

    JQuery操作checkbox、radio等示例

    本篇文章将深入探讨如何使用jQuery来操作checkbox和radio元素,这两种元素在表单提交和用户交互中扮演着重要角色。 首先,让我们了解checkbox和radio的基本概念。Checkbox用于提供多选选项,用户可以勾选多个选项;...

    jquery checkbox 选中 取消 checkbox多选

    本文将深入探讨如何使用jQuery来实现复选框(checkbox)的选中和取消选中功能,以及如何处理多选的情况。 首先,我们需要理解HTML中的`&lt;input&gt;`元素类型为"checkbox"的基本用法。复选框用于让用户从多个选项中选择...

    checkbox多项选中及取消选中

    综上所述,实现 `checkbox` 的多项选中及取消选中,需要理解 `checkbox` 的基本用法,掌握JavaScript操作DOM属性的方法,理解 `attr` 与 `prop` 的区别,并灵活运用事件监听和样式控制。通过这些技术,你可以创建出...

    jQuery 对checkbox的操作

    jQuery 对checkbox的操作

    checkBox分别处理选中与不选中

    - **处理未选中状态**:经过上述操作后,列表中剩下的元素即为未选中的项。 ```java for (int i = 0; i (); i++) { System.out.println(list.get(i) + "未被选中"); } ``` 通过这种方式,我们可以清晰地了解...

    jquery 的checkbox样式

    在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript代码的编写,使得DOM操作、事件处理和动画效果变得更加便捷。对于“jQuery的checkbox样式”,这是一个关注于提升网页中复选框...

    jquery 操作checkbox 和select

    一、jQuery操作checkbox 1. 检查状态: jQuery提供了`is()`方法来检查checkbox是否被选中。例如,如果有checkbox的ID为"myCheckbox",可以这样检查它的状态: ```javascript if($("#myCheckbox").is(":checked")) {...

    jQuery获取checkbox选中的值

    本知识点将深入探讨如何使用jQuery获取选中的checkbox值,以及如何控制checkbox的选中状态。 ### jQuery获取选中的checkbox值 1. **理解checkbox的使用场景**: 当用户需要在多个选项中选择一个或多个时,复选框...

    绚丽的复选框 jquery-checkbox

    **绚丽的复选框 jQuery-Checkbox** 在网页设计中,复选框(checkbox)是常见的交互元素,用于让用户选择一个或多个选项。然而,原始的HTML复选框样式通常较为简单,缺乏吸引力。为了提升用户体验和界面美观度,...

    jQuery操作checkbox

    本篇文章将深入探讨如何使用jQuery来操作checkbox元素,包括多选、全选和反选等常见功能。 一、jQuery选择checkbox 在jQuery中,我们可以使用`$('input[type="checkbox"]')`选择所有的checkbox。如果你想根据特定...

    Jquery操作CheckBox多选框.doc

    Jquery操作CheckBox多选框.doc

    用JS修改checkbox的选中状态

    在JavaScript(JS)中,操作HTML元素,包括修改checkbox(复选框)的选中状态,是前端开发中常见的任务。复选框是用户界面中一种允许用户进行多项选择的控件,其状态通常有两种:选中(checked)和未选中。在本文中...

Global site tag (gtag.js) - Google Analytics