实现目的:通常在项目中,编辑页面在前后台需要一个一个框赋值,取值操作,小伙伴们普遍都会感觉繁琐,麻烦.;

实现思路:利用json对象化键值的思想;

好处:方便快速开发,提高开发效率,减少重复性代码;

缺点:还不完善,只支持文本框,复选框,下拉框几种控件;

根本原因:纯粹是为了学习与交流;

示例:只要传一个对象即可获得和给下面的控件赋值;

aaarticlea/png;base64,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" alt="" />

主要扩展代码:

(function ($) {
$.fn.setValues = function (options) {
var obj = JSON.parse(options);
$("input[type='text'][datakey]").each(function () {
$this = $(this);
$this.val(obj[$this.attr("datakey")]);
});
$("input[type='checkbox'][datakey]").each(function () {
$this = $(this);
$this.attr("checked", obj[$this.attr("datakey")]);
});
$("select[datakey]").each(function () {
$this = $(this);
$nationtype = obj[$this.attr("datakey")];
var str = "";
$this.find("option[value='" + $nationtype + "']").attr("selected", true);
});
}
$.fn.getValues = function () {
var objValues = new Object();
$("input[type='text'][datakey]").each(function () {
$this = $(this);
objValues[$this.attr("datakey")] = $this.val();
});
$("input[type='checkbox'][datakey]").each(function () {
$this = $(this);
objValues[$this.attr("datakey")] = $this.attr("checked") == "checked" ? true : false;
});
return JSON.stringify(objValues);
}
})(jQuery);

测试页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="FormEditor.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FormEditor.Demo</title>
<script src="Scripts/ajaxhelper.js"></script>
<script src="Scripts/jquery-1.9.1.js"></script>
<script src="Scripts/formEditor.js"></script>
<script>
$(document).ready(function () {
ajaxmethod('Handler/UsersHandler.ashx?actiontype=getnations', function (data) {
var $obj = JSON.parse(data);
$("select[datakey]").each(function () {
$this = $(this);
var str = "";
for (var i = ; i < $obj.length; i++) {
$objson = $obj[i];
str += "<option value='" + $objson["Code"] + "'>" + $objson["Name"] + "</option>";
}
$this.append(str);
});
ajaxmethod("Handler/UsersHandler.ashx?actiontype=getusers", function (data) {
//通过插件方法赋值-参数为json对象
$(this).setValues(data);
});
});
//通过插件方法取值-获得的结果为json对象
//getValues();
});
function getValues() {
return alert($(this).getValues());
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div class="formeditor">
用户名:<input id="Text1" type="text" datakey="Name" /><br />
<br />
&nbsp; 密码:<input id="Text2" type="text" datakey="Pass" /><br />
<br />
&nbsp; 邮箱:<input id="Text3" type="text" datakey="Email" /><br />
<br />
&nbsp; 启用:<input id="Text4" type="checkbox" datakey="IsUse" /><br />
民族:<select id="sel1" datakey="NationType"></select>
<%-- &nbsp; 性别:<input id="Radio1" type="radio" datakey="rdoMale" />男
<input id="Radio2" type="radio" datakey="rdoFeMale" />女<br />--%>
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;
<input id="btnSave" type="button" value="保存" /><br />
</div>
</form>
</body>
</html>

Hanlder.ashx 文件代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json; namespace FormEditor.Handler
{
/// <summary>
/// UsersHandler 的摘要说明
/// </summary>
public class UsersHandler : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string actiontype = context.Request.QueryString["actiontype"];
switch (actiontype)
{
case "getusers":
context.Response.Write(JsonConvert.SerializeObject(GetUser()));
break;
case "getnations":
context.Response.Write(JsonConvert.SerializeObject(GetNations()));
break;
default:
break;
}
}
private List<Nationality> GetNations()
{
List<Nationality> Nation = new List<Nationality>();
Nationality n1 = new Nationality() { Code = , Name = "汉族" };
Nationality n2 = new Nationality() { Code = , Name = "回族" }; Nation.Add(n1);
Nation.Add(n2); return Nation;
}
private Users GetUser()
{
Users users = new Users()
{
ID = ,
Email = "jackandmary@qq.com",
Name = "jack",
Pass = "",
Sex = ,
IsUse = false,
NationType =
};
return users;
} public bool IsReusable
{
get
{
return false;
}
}
}
}

实体类代码:

public class Users
{
public Users() { }
public int ID { get; set; }
public string Name { get; set; }
public string Pass { get; set; }
public int Sex { get; set; }
public string Email { get; set; }
public bool IsUse { get; set; }
public int NationType { get; set; }
} public class Nationality
{
public int Code { get; set; }
public string Name { get; set; }
}

说明:暂时就多说了。

PS:楼主技术积累比较浅,但是一直保持着浓厚的兴趣,现在纠结的是对jquery的源码基本不懂,想要研究却不知道从哪里下手,再摸索。

这个功能很简单,但是楼主还是从0点开始到现在花了4个多小时,完成了一部分,以后再往更深层次优化吧,希望可以为一些新手朋友带来一点帮助!

源码下载

一款jquery小插件:实现轻松获取和绑定编辑表单的值(带源码)的更多相关文章

  1. jQuery form插件的使用--用 formData 参数校验表单,验证后提交(简单验证).

    Form Plugin API 里提供了很多有用的方法可以让你轻松的处理表单里的数据和表单的提交过程. 测试环境:部署到Tomcat中的web项目. 一.引入依赖js <script src=& ...

  2. jQuery form插件的使用--使用 fieldValue 方法校验表单

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  3. 【jQuery EasyUI系列】 创建展开行明细编辑表单的CRUD应用

    当切换数据网络格局(datagrid view)到detailview,用户可以展开一行来显示一些行的明细在行下面,这个功能允许您为防止在明细行面板中的编辑表单提供一些合适的布局. 步骤1.在HTML ...

  4. 推荐几款jQuery表格插件

    平时项目中,会碰到很多表格元素,这里推荐几款jQuery表格插件. Stackable.js 通常在小屏幕上,表格的表形形式不大好,因为用户会缩放平移,或者就是表格太小,导致数据不可见.Stackab ...

  5. 黑色半透明镂空遮罩指引效果实现jQuery小插件

    /*! * by zhangxinxu(.com) 2017-05-18 * 新版上线时候的黑色半透明镂空遮罩指引效果实现jQuery小插件 * 兼容到IE8+ * MIT使用协议,使用时候保留版权 ...

  6. 基于HTML5 audio元素播放声音jQuery小插件

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1609 一.前面的些唠 ...

  7. Slick – 这是你需要的最后一款 jQuery 传送带插件

    slick 是一款完全响应式的 jQuery 传送带插件,能够根据容器自动适应宽度.在现代浏览器中会使用 CSS3 来实现特殊效果,可以使用扩展方法对项目进行添加.删除和过滤.这是你需要的最后一款 j ...

  8. 用jQuery获取表单的值

    在日常开发过程中,有许多用到表单的地方.比如登录,注册,比如支付,填写订单,比如后台管理等等. 使用jQuery来获取表单的值是比较常见的做法. 常见表单 单行文字域:<input type=' ...

  9. 利用jquery.validate以及bootstrap的tooltip开发气泡式的表单校验组件

    表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验.网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没有多大的问题,但是在实际工作中,表单校验有可能有比较复杂的个 ...

随机推荐

  1. 【转】Notepad++插件NppProject发布

    原文网址:http://darkbull.net/article/NppProject/ 如果notepad++安装在 系统盘/program files/ 目录下,可能会提示错误.将npp移到其他目 ...

  2. asp.net Post Get提交数据转Model实例

    转自:http://blog.csdn.net/daodaowolf/article/details/8990694 此功能是将客户端HTTP协议POST GET方式提交的数据转换为某个Model实例 ...

  3. 将access数据转换成oracle数据

    1.打开access数据文件,选择需转换的表/导出/ODBC数据库 2.输入导出的表名 3.选择数据源,点击新建 4.选择数据源驱动程序 5.保存DSN文件 6.下一步,输入oracle的SERVIC ...

  4. Windows Phone SDK 8.0 安装系统要求

    Windows Phone SDK 8.0 是一个功能齐全的开发环境,可用于构建 Windows Phone 8.0 和 Windows Phone 7.5 的应用和游戏. Windows Phone ...

  5. linux 命令拾遗

    man ascii 这个命令会打印出八进制.十六进制和十进制的ASCII码表. xxd xxd可以生成所给与文件的十六进制拷贝,也可以将编辑好的十六进制拷贝还原成二进制格式.它也可以将十六进制拷贝输出 ...

  6. 三个数从小到大排序—南阳acm

    问题描述: 现在要写一个程序,实现给三个数排序的功能     输入        输入三个正整数    输出       给输入的三个正整数排序       样例输入 20 7 33      样例输 ...

  7. Tornado源码探寻(请求到来)

    上一篇中介绍了tornado框架在客户端请求之前所做的准备(下图1.2部分),本质上就是创建了一个socket服务端,并进行了IP和端口的绑定,但是未执行 socket的accept方法,也就是未获取 ...

  8. 1 weekend110的hdfs源码跟踪之打开输入流 + hdfs源码跟踪之打开输入流总结

    3种形式的元数据,fsimage是在磁盘上,meta.data是在内存上, 我们继续,前面呢,断点是打在这一行代码处, FileSystem fs = FileSystem.get(conf); we ...

  9. weblogic开发模式与生产模式介绍

    weblogic开发模式与生产模式介绍 开发模式:该模式启用自动部署 生产模式:该模式关闭自动部署 weblogic server 三种部署方法:自动部署.控制台部署.命令部署 自动部署:当其处于启用 ...

  10. linux下avr单片机开发:中断服务程序

    不管是什么单片机程序,中断总是非常重要的一部分 ,linux 下的avr开发,主要是依靠avr-gcc,以及avr-libc,它们对中断程序的格式要求,与window下的icc-avr以及win-av ...