`

JQuery.UI中对话框简单示例(对表格增、删、改)

阅读更多
基于:jquery-1.7.2.js、jquery-ui-1.8.21.custom.js
原理演示,不需要、没有服务器端的代码。

运行效果:




<!DOCTYPE html>
<html>
<head>
	<meta charset="gbk">
	<title>dialog demos</title>
	<!--根据JQuery.UI的例子改写,by wallimn, 2012-08-01-->
	<link rel="stylesheet" href="./css/base/jquery.ui.all.css">
	<script src="./js/jquery-1.7.2.js"></script>
	<script src="./js/jquery-ui-1.8.21.custom.js"></script>
	<style>
		body { font-size: 10px; }
		label, input { display:block; }
		input.text { margin-bottom:12px; width:95%; padding: .4em; }
		div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
		div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 4px; text-align: left; }
	</style>
	<script>
	$(function() {
		var name = $( "#name" ),
			email = $( "#email" ),
			password = $( "#password" ),
			rowindex = $( "#rowindex" ),
			allFields = $( [] ).add( name ).add( email ).add( password ).add( rowindex );
		
		$( "#dialog-form" ).dialog({
			autoOpen: false,
			height: 280,
			width: 350,
			modal: true,
			buttons: {
				"Create/Edit": function() {
					if (rowindex.val()==""){//新增
						$( "#users tbody" ).append( "<tr>" +
							"<td>" + name.val() + "</td>" + 
							"<td>" + email.val() + "</td>" + 
							"<td>" + password.val() + "</td>" +
							'<td><button class="EditButton" >Edit</button><button class="DeleteButton">Delete</button></td>'+
						"</tr>" ); 
						bindEditEvent();
					}
					else{//修改
						var idx = rowindex.val();
						var tr = $("#users>tbody>tr").eq(idx);
						//$("#debug").text(tr.html());
						tr.children().eq(0).text(name.val());
						tr.children().eq(1).text(email.val());
						tr.children().eq(2).text(password.val());
					}
					$( this ).dialog( "close" );
				},
				Cancel: function() {
					$( this ).dialog( "close" );
				}
			},
			close: function() {
				//allFields.val( "" ).removeClass( "ui-state-error" );
				;
			}
		});
		
		function bindEditEvent(){
			//绑定Edit按钮的单击事件
			$(".EditButton").click(function(){
					var b = $(this);
					var tr = b.parents("tr");
					var tds = tr.children();
					//设置初始值
					name.val(tds.eq(0).text());
					email.val(tds.eq(1).text());
					password.val(tds.eq(2).text());
					
					var trs = b.parents("tbody").children();
					//设置行号,以行号为标识,进行修改。
					rowindex.val(trs.index(tr));
					
					//打开对话框
					$( "#dialog-form" ).dialog( "open" );
			});
			
			//绑定Delete按钮的单击事件
			$(".DeleteButton").click(function(){
				var tr = $(this).parents("tr");
				tr.remove();
			});
		};
		
		bindEditEvent();
		
		$( "#create-user" )
			.button()
			.click(function() {
				//清空表单域
				allFields.each(function(idx){
					this.value="";
				});
				$( "#dialog-form" ).dialog( "open" );
			});
	});
	</script>
</head>
<body>

<div class="demo">

<div id="dialog-form" title="Create/Edit User">
	<form>
	<fieldset>
		<label for="name">Name</label>
		<input type="text" name="name" id="name" class="text" />
		<label for="email">Email</label>
		<input type="text" name="email" id="email" value="" class="text" />
		<label for="password">Password</label>
		<input type="password" name="password" id="password" value="" class="text" />
		<input type="hidden" name="rowindex" id="rowindex" value=""/>
	</fieldset>
	</form>
</div>


<div id="users-contain">
	<h1>Existing Users:</h1>
	<table id="users">
		<thead>
			<tr class="ui-widget-header ">
				<th>Name</th>
				<th>Email</th>
				<th>Password</th>
				<th style="width:12em;">Operation</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td>wallimn</td>
				<td>wallimn@sohu.com</td>
				<td>wallimn</td>
				<td><button class="EditButton" >Edit</button><button class="DeleteButton">Delete</button></td>
			</tr>
			<tr>
				<td>John Doe</td>
				<td>john.doe@example.com</td>
				<td>johndoe</td>
				<td><button class="EditButton" >Edit</button><button class="DeleteButton">Delete</button></td>
			</tr>
		</tbody>
	</table>
</div>
<button id="create-user">Create new user</button>

</div><!-- End demo -->
<div id="debug">
</div>
</body>
</html>
  • 大小: 12.2 KB
6
1
分享到:
评论
5 楼 m635674608 2012-10-13  
wallimn 写道
如你不用对话框放大、缩小的功能,可以不包含resizable.js,这样就会小点。速度会快点儿。如果全包含,我想引入一个文件与多个文件应该差别不大。

也许把。文件大小影响的比较大,数量影响的少电脑吧。
4 楼 wallimn 2012-10-13  
如你不用对话框放大、缩小的功能,可以不包含resizable.js,这样就会小点。速度会快点儿。如果全包含,我想引入一个文件与多个文件应该差别不大。
3 楼 m635674608 2012-10-13  
wallimn 写道
只写一个文件时,就是全都引用了。
多个写时,是按需包含。用户访问速度可能会快一点儿。其他没有区别。

刚开始我也以为是这样的。我把其他的单个文件的大小和/jquery-ui-1.8.21.custom.js文件大小对比了一下,发现差不多。
但是从性能上来讲的话,具体也知道了,因为如果只写一个文件的话,只发一次请求啊,如果写多个文件的话,要发多次请求啊,你觉得了???
2 楼 wallimn 2012-10-13  
只写一个文件时,就是全都引用了。
多个写时,是按需包含。用户访问速度可能会快一点儿。其他没有区别。
1 楼 m635674608 2012-10-13  
lz在这里使用的是<script src="./js/jquery-ui-1.8.21.custom.js">
在使用dialog的时候,好像还有一种写法,就是引用这些js文件也可以实现dialog.
jquery.dimensions.js
ui.dialog.js
ui.resizable.js
ui.mouse.js
ui.draggable.js
引用这些也可以实现dialog,请问2种引用有什么区别吗?哪种更好啊? 

相关推荐

    jquery-ui插件

    官网(https://jqueryui.com/)提供了详细教程、API参考以及示例代码,是学习的好资源。 总结,jQuery UI是JavaScript开发中的强大工具,提供了丰富的用户界面组件,可以大大提升网站的用户体验。通过学习和实践,...

    jquery.ui使用手册

    实际上,jQuery UI与extjs已经开展了合作,双方希望将extjs强大的ui组件集成到性能强劲的jQuery框架中。 #### jQuery UI基本组件 jQuery UI提供了许多常用的UI元素和功能,包括但不限于以下组件: - 拖拽...

    JQuery Easy UI 增删改查 示例

    在“JQuery Easy UI 增删改查”这个示例中,我们将深入探讨如何利用这个框架实现数据的CRUD(Create、Read、Update、Delete)操作,并结合后端的 JDBC 和 Servlet 技术来处理数据。 **1. CRUD 操作基础** CRUD是...

    jquery.ui-1.5b

    **jQuery UI 1.5b 知识点详解** jQuery UI 是一个基于 jQuery JavaScript 库的用户界面组件集合,提供了丰富...通过深入研究这个压缩包中的文件,开发者可以提升自己的前端开发技能,并对 jQuery UI 有更全面的理解。

    jquery-ui-1.8.18.custom.zip

    本资源包“jquery-ui-1.8.18.custom.zip”包含了jQuery UI 1.8.18版本的自定义构建,为开发者提供了丰富的功能和示例,涵盖了js文件、特效、表格、对话框等多种交互元素。 1. **jQuery UI 核心理念**:jQuery UI 的...

    jquery easy ui+ssh 增删改查例子

    这里,我们深入探讨一下使用jQuery EasyUI与SSH框架进行数据操作(增删改查)的基础知识。 jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列轻量级、易于使用的组件,如表格、对话框、菜单等,用于构建富...

    easyui 表格增删改查工具类

    在这个“easyui 表格增删改查工具类”中,我们可以期待找到一些实用的代码示例和辅助函数,帮助开发者实现数据的增、删、改、查操作。这些工具类通常会封装对 EasyUI 表格的初始化、数据加载、事件绑定等操作,使得...

    使用jqueryUI实现表格排序功能

    在网页开发中,jQuery UI 是一个强大的库,它提供了丰富的用户界面组件,包括对话框、滑块、拖放等。而“使用jQuery UI实现表格排序功能”是网页交互设计中的常见需求,尤其对于数据展示丰富的网页,如报表、数据...

    jquery及ui包

    在"jquery及ui包"中,包含两个关键文件:`jquery-1.7.2.min.js`和`jquery-ui.min.js`。 **jQuery库** `jquery-1.7.2.min.js`是jQuery库的一个版本,它以压缩和优化的形式提供。1.7.2是jQuery的一个稳定版本,它...

    jquery-ui-1.8.18.custom.rar

    总结起来,jQuery UI 1.8.18 自定义版本是一个强大且全面的UI工具包,它为网页开发者提供了丰富的交互元素和组件,使得构建专业、美观且功能丰富的网页应用变得更加简单。无论你是新手还是经验丰富的开发者,都能...

    jquery-ui-1.8.18.zip

    2. **可排序(Sortable)**:允许用户对列表或表格中的项目进行排序,常见于待办事项列表或目录排序。 3. **对话框(Dialog)**:提供弹出式窗口,可以用于警告、确认、信息提示或展示详细内容等场景。 4. **滑块...

    jquery-ui-1.7.3.custom

    这是一个基本的对话框示例。 ``` 六、优化与升级 虽然jQuery UI 1.7.3是一个较旧的版本,但其核心功能仍然强大。然而,为了获得最新的特性、性能优化和安全更新,建议升级到最新版本。同时,应考虑利用CDN服务来...

    jquery-ui-1.9m5.zip

    在实际项目中,开发者可以根据需求选择性地引入jQuery UI的组件,通过简单的API调用即可实现复杂的效果。例如,创建一个对话框只需几行代码: ```html $(function() { $("#dialog").dialog(); }); 基本对话框"&gt; ...

    jquery UI中文文档

    在提供的压缩包文件中,可以看到不同版本的 jQuery UI,例如 `jquery-ui-1.10.3.zip` 和 `jquery-ui-1.7.2.custom.zip`。每个版本可能引入了新功能、优化或修复了已知问题。开发者应根据项目需求和兼容性选择合适的...

    jquery-ui-1.11.0.custom

    - 对于jQuery UI 1.11.0的详细文档和社区支持,开发者可以访问官方文档网站,那里有丰富的API参考、示例和问题解答。 综上所述,“jquery-ui-1.11.0.custom”是一个针对特定需求定制的jQuery UI版本,包含了精心...

    jQuery UI工具风格主题.rar

    本资源"jQuery UI工具风格主题.rar"显然是一个包含了jQuery UI特定主题的压缩包,其中可能包含了CSS样式文件、JavaScript文件以及示例HTML文件,便于开发者在项目中应用这些预设的视觉样式。 首先,jQuery UI的核心...

    jquery easy ui模板

    首先,jQuery Easy UI 建立在 jQuery 的基础上,这意味着你需要对 jQuery 的基础语法有一定的了解。jQuery 提供了简洁的 API 来操作 DOM、处理事件、执行动画和进行Ajax请求。了解这些基础知识是使用 jQuery Easy UI...

    jquery.mobile-1.3.0.zip

    通过查看和运行这些示例,开发者可以直观地了解如何使用各种组件和功能,如按钮、滑块、表格、对话框等。1.3.0版本的示例将展示新特性的用法,以及如何更新旧代码以适应新版本。 六、实际应用 在实际开发中,...

    jquery-ui-1.8.21

    在"jquery-ui-1.8.21"这个压缩包中,包含的是jQuery UI 1.8.21版本,这是一个稳定且广泛使用的版本,提供了多种预设样式和主题,其中一种就是描述中的“红色皮肤”。 **红色皮肤**是jQuery UI的一个特色,它为用户...

    jQuery LigerUI V1.3.3.rar.rar

    2. **组件丰富**:LigerUI提供了众多UI组件,如表格(Grid)、表单(Form)、下拉框(ComboBox)、日期选择器(DatePicker)、对话框(Dialog)、分页(Pager)等,这些都是构建复杂Web应用的必备工具。 3. **主题...

Global site tag (gtag.js) - Google Analytics