`
SpringLin
  • 浏览: 140382 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

jQuery 对选择列表的操作及异步提交使用的简单性

阅读更多
效果图:

<!DOCTYPE html>
<html>
<head>
<title>无标题文档</title>
<script type="text/javascript" src="js/jquery.min.js" />
<script type="text/javascript">

$(function(){

//模拟数据
var dataNodes =[      
                  { id:1, pId:0, name:"组一", ename:"Mobile"},      
                  { id:2, pId:0, name:"组二", ename:"Nokia"},      
                  { id:3, pId:0, name:"组三", ename:"C6(Music)"},
                  { id:11, pId:1, name:"XXOX6", phone:"12345671"},      
                  { id:12, pId:1, name:"XXO5230", phone:"12345672"},      
                  { id:13, pId:1, name:"XXON97mini", phone:"12345673"},      
                  { id:21, pId:2, name:"XXO三星", phone:"123456721"},     
                  { id:22, pId:2, name:"XXOI9000", phone:"123456722"},      
                  { id:23, pId:2, name:"XXOI9000", phone:"123456723"},      
                  { id:31, pId:3, name:"XXOGalaxy Naos", phone:"123456731"},      
                  { id:31, pId:3, name:"XXOFascinate", phone:"123456732"},      
                  { id:33, pId:3, name:"XXO索爱", phone:"123456733"}];

//初始化加载组信息      
function initGroupInfomation(param){      
    for(i=0; i < dataNodes.length; i++ ){      
        if(dataNodes[i].pId == "0"){
			//DOM 创建节点      
            //var newoption = document.createElement("option");      
            //newoption.text = dataNodes[i].name;      
            //newoption.value = dataNodes[i].id;   
            $("#"+param).append("<option value="+ dataNodes[i].id +">"+ dataNodes[i].name +"</option>"); 
        }      
    }      
}

//加载数据
function loadData(id){
	var data = "";
	 for(i=0; i < dataNodes.length; i++ ){      
	        if(dataNodes[i].pId == id){      
	           data += "<option value="+ dataNodes[i].phone +">"+ dataNodes[i].name +"</option>";
	        }      
	 } 
  return data;
}
//判断是否存在
function isSelFlag(tag){
	var flag = false;
	$("#contactPerson option").each(function(i){
		if($("#"+tag+" option:selected").val() == this.value){
			flag = true;
		}
	});
	return flag;
}

//组列表
$("#group").click(function(){
	//alert(this.value);
	//alert($("#group option:selected").val());
	if($("#person option").length > 0){
		$("#person option").remove();
	}
	//组不存在选中列表时才加载
	if(!isSelFlag("group")){
		$("#person").append(loadData(this.value));
	}
});
$("#group").dblclick(function(){
	//判断联系人列表中是否存在选中项
	if(!isSelFlag("group")){
		$("#group option:selected").clone().prependTo("#contactPerson");
	}else alert("O(∩_∩)O温馨提示, 选择的列已存在!");

	if($("#person option").length > 0){
		$("#person option").remove();
	}
});

//人员列表
$("#person").dblclick(function(){
	if(!isSelFlag("person")){
		$("#person option:selected").appendTo("#contactPerson");
	}else alert("O(∩_∩)O温馨提示, 选择的列已存在!");
	
});

//联系人列表
$("#contactPerson").dblclick(function(){
	$("#contactPerson option:selected").remove();
});

//加载组数据
initGroupInfomation("group");


//参数循环获取
$("#save").click(function(){
	var url = 'XXX.action';
	var param = {};
	$("div input,select,textarea").each(function(i){
		param[this.name] = this.value;
	});
	//JSON数据的循环拼接,做异步提交用
	var strbf = '{';
	$("#contactPerson option").each(function(i){
			strbf += this.value+":'"+this.text+"',";
	});
	strbf = strbf.substring(0,strbf.length-1)+ "}";
	param['contactPerson'] = strbf;
	requestAjax(url, param);
});


function requestAjax(url,param){
		$.ajax({
			   type: "POST",  
			   url: url,
			   data: param,
			   success: function(data,textStatus){
        		 alert('操作成功!'+data.message);
			   },
			   error: function(XMLHttpRequest, textStatus, errorThrown){
				alert("产生了异常!");
			   },
			   dataType: "json"
			});
}

});
</script>
</head>
<body>
<div class="fieldset_container">
					<table cellpadding="0" cellspacing="0" class="table_form" align="center">
						<tr>
							<td width="280px">
										<a id="bNPage" href="#">组列表</a>
							</td>
							<td width="6px" rowspan="2"></td>
							<td width="280px">
										<a id="bNPage" href="#">组人员列表</a>
							</td>
							<td width="6px" rowspan="2"></td>
							<td width="280px">
										<a id="bNPage" href="#">已选择人员,组列表</a>
							</td>
						</tr>
						<tr>
							<td align="center">
								<select name="group" id="group" multiple="multiple" style="width:280px; height:150px;"></select>
							</td>
							<td align="center">
								<select name="person" id="person" multiple="multiple" style="width:280px; height:150px;"></select>
							</td>
							<td align="center">
								<select name="contactPerson" id="contactPerson" multiple="multiple" style="width:280px; height:150px;"></select>
							</td>
						</tr>
					</table>
	
</div>
</body>
</html>

分享到:
评论

相关推荐

    jquery-form 异步提交表单

    使用jQuery选择器选取你要进行异步提交的表单: ```javascript var form = $('#myForm'); ``` 2. **初始化插件** 接下来,调用`ajaxForm`或`ajaxSubmit`方法初始化插件: ```javascript form.ajaxForm(options);...

    jquery异步提交例子

    本文将深入探讨jQuery异步提交的概念、用途及其在实际项目中的应用,特别是结合Servlet进行数据交互。 首先,异步提交是Web开发中的重要技术,它允许页面在不刷新的情况下与服务器进行数据交换,提高了用户体验。...

    使用jQuery写了一个简单的窗口和异步刷新

    标题中的“使用jQuery写了一个简单的窗口和异步刷新”指的是使用JavaScript库jQuery实现的一个基本的弹窗功能和页面数据的异步更新。在Web开发中,jQuery是一个非常流行的选择,因为它简化了DOM操作、事件处理、动画...

    jQuery的异步调用

    最后,将jQuery的Ajax支持与其他JavaScript库进行比较也是了解jQuery异步编程能力的一个重要方面。例如,Prototype、Dojo、Ext-JS、GWT、YUI以及Google Closure等都有各自的方式来处理Ajax交互。开发者在选择合适的...

    jquery异步加载页面

    在“jQuery异步加载页面”的场景中,我们通常指的是利用jQuery的Ajax功能来实现页面内容的动态加载,以提高用户体验,减少网络传输负担。这种技术尤其适用于选项卡式布局,因为用户通常只需看到一两个选项卡的内容,...

    jquery ajaxSubmit 异步提交的简单实现

    通过使用jQuery库中的ajaxSubmit方法,可以非常方便地实现表单的异步提交。 首先,我们来理解异步提交的概念。在传统的Web应用中,提交表单通常会导致浏览器加载一个新的页面或刷新当前页面。这种机制在很多情况...

    jQuery json创建投票系统_异步投票代码

    以下是一个简单的jQuery异步投票示例: ```javascript $.ajax({ type: 'POST', // 请求类型 url: 'vote.php', // 服务器端处理投票的脚本 data: {optionId: '1'}, // 传递的投票选项ID dataType: 'json', // ...

    jquery php 文件异步上传

    1. 使用jQuery选择文件输入元素,监听`change`事件。 2. 当用户选择文件后,触发Ajax请求,将文件数据发送到服务器。 3. 在PHP端,接收到文件数据,进行验证和存储。 4. 服务器返回响应,可能是文件存储的状态或者...

    异步 提交表单请求

    虽然原生的Ajax API使用起来较为复杂,但jQuery提供了简洁的$.ajax()、$.post()和$.get()方法,使得异步请求变得简单易用。例如,使用jQuery提交表单的代码可能如下: ```javascript $.ajax({ type: 'POST', ...

    Java通过jQuery实现ajax异步请求

    在Web开发中,Java与jQuery的结合使用是常见的技术栈,尤其在构建动态、交互性强的用户界面时。本示例工程"Java通过jQuery实现ajax异步请求"着重展示了如何利用jQuery的AJAX功能与后端Java服务器进行数据通信,从而...

    Jquery 封装下的ajax异步加载

    jQuery 是一个广泛使用的JavaScript库,它极大地简化了AJAX操作。本资源提供了一个基于jQuery的AJAX异步加载的Web项目实例,通过导入MyEclipse开发环境即可运行,涉及到的主要技术包括jQuery、JSON以及Servlet。 ##...

    jquery实现页面的异步加载(jsp)

    jQuery提供了更简单的`.load()`方法来实现部分页面的异步加载。这个方法直接将服务器返回的内容插入到指定元素中。例如: ```javascript $('#targetElement').load('your_server_page.jsp .content'); // 只加载...

    JQuery DoM和ajax 操作

    jQuery提供了丰富的选择器、遍历和操作方法,使得DOM操作变得简单易行。 1. **选择器**: jQuery提供了多种CSS选择器,如ID选择器(#id),类选择器(.class),元素选择器(element),以及组合选择器等,使我们能够快速...

    jQuery插件TreeView异步加载树

    以下是一个简单的示例,展示了如何使用jQuery和TreeView插件实现异步加载: ```javascript $("#treeview").treeview({ data: [], // 初始化时为空 collapseIcon: "fa fa-caret-right", expandIcon: "fa fa-caret...

    jquery.form提交方式

    在Web开发中,jQuery库极大地简化了JavaScript操作,特别是在处理表单提交方面。本文将深入探讨jQuery中处理表单提交的多种方式,结合源码解析,帮助开发者更好地理解和应用。 一、常规的表单提交 在HTML中,表单的...

    基于 jQuery 实现的 Ajax 异步分页

    在jQuery中,使用Ajax非常简单,它提供了$.ajax()、$.get()和$.post()等函数来处理异步请求。对于分页应用,我们通常使用$.get()或$.post(),因为它们更简洁易用。 实现Ajax异步分页的基本步骤如下: 1. **HTML...

    jQuery 异步无刷新删除,前台JS调用后台删除方法

    总之,jQuery异步无刷新删除是通过AJAX技术实现的,它提高了Web应用的用户体验。通过前台JS调用后台删除方法,我们可以轻松地完成删除操作,同时保持页面的实时更新,而不必重新加载整个页面。这样的功能在诸如博客...

    ajax jquery html异步登录

    在Web开发领域,异步登录是一种提升用户体验的重要技术,它允许用户在不刷新整个页面的情况下进行登录操作。这里我们主要探讨的是使用Ajax、jQuery和HTML实现的异步登录方案。 Ajax(Asynchronous JavaScript and ...

    PHP 结合jquery异步上传图片

    在IT行业中,PHP和jQuery是两个非常重要的...以上就是关于“PHP结合jQuery异步上传图片”的详细知识介绍,希望对你有所帮助。在实际开发中,你可能还需要考虑其他因素,如错误处理、安全防护(防止文件注入攻击)等。

    jquery ztree 异步动态加载

    综上所述,jQuery ZTree的异步动态加载功能是大数据量场景下的理想选择,它能有效提升用户体验,减轻服务器负担,并且提供灵活的配置和丰富的回调接口,便于开发者进行各种定制化操作。通过合理的配置和优化,可以...

Global site tag (gtag.js) - Google Analytics