(function ($) {
$.fn.extend({
initForm: function (options) {
//默认参数
var defaults = {
formdata: "",
isDebug: true //是否需要调试,这个用于开发阶段,发布阶段请将设置为false,默认为false,true将会把name value打印出来
}
//如果传入的json字符串,将转为json对象
var tempData = "";
if ($.type(options) === "string") {
defaults.formdata = JSON.parse(options);
} else {
defaults.formdata = options;
}
//设置参数
// var setting = $.extend({}, defaults, tempData);
var setting = defaults;
var form = this;
formdata = setting.formdata;
 
//如果传入的json对象为空,则不做任何操作
if (!$.isEmptyObject(formdata)) {
var debugInfo = "";
$.each(formdata, function (key, value) {
//是否开启调试,开启将会把name value打印出来
if (setting.isDebug) {
debugInfo += "name:" + key + "; value:" + value + "\r\n ";
}
//表单处理
var formField = form.find("[name='" + key + "']");
if ($.type(formField[0]) === "undefined") {
if (setting.isDebug) {
console.warn("can not find name:[" + key + "] in form!!!"); //没找到指定name的表单
}
} else {
var fieldTagName = formField[0].tagName.toLowerCase();
if (fieldTagName == "input") {
if (formField.attr("type") == "radio") {
$("input:radio[name='" + key + "'][value='" + value + "']").attr("checked", "checked");
} else if (formField.attr("type") == "checkbox") {
$("input:checkbox[name='" + key + "'][value='" + value + "']").attr("checked", "checked");
} else {
formField.val(value);
}
} else if (fieldTagName == "label") {
formField.html(value);
} else {
formField.val(value);
}
}
//图片链接处理form.find("img[fieldata=img_url]")
var formImage = form.find("img[fieldata=" + key + "]");
if ($.type(formImage[0]) != "undefined") {
formImage.attr("src", value);
}
//a链接处理
var formLink = form.find("a[fieldata=" + key + "]");
if ($.type(formLink[0]) != "undefined") {
formLink.attr("href", value);
}
})
if (setting.isDebug) {
console.log(debugInfo);
}
}
return form; //返回对象,提供链式操作
}
});
})(jQuery)

jq form表单自动赋值的更多相关文章

  1. ajax无刷新方式对form表单进行赋值!

    /** * 把json数据填充到from表单中 */ <form id="editForm" action="user.php"> 用户名:< ...

  2. 按Enter键后Form表单自动提交的问题

    怪事年年有,今年特别多. 话说,最近项目中遇到一件怪事,当我鼠标focus在文本框中,轻轻敲了下回车键,尼玛页面突然刷新了,当时把宝宝给吓得. 接下来就是一番苦逼的烧脑和蛋疼~ 一.被表象所迷惑 突然 ...

  3. form表单自动提交

    form表单提交是web项目中经常遇到的,但是如果form中只有一个input为text类型的输入框时, 需要格外注意,因为这时候只要你按下回车键,form表单就会自动提交,这是form表单的一个特性 ...

  4. 遇到的一个Form表单自动提交问题解决办法

    Form 表单中只有一个 input 元素时按回车会默认提交表单.有的时候我们希望按回车可以进行列表查询,但是查询后表单被自动提交了,然后刷新了整个页面.这个时候就需要对这个 Form 表单处理一下以 ...

  5. form表单自动回车提交

    对于使用了submit按钮的form表单,浏览器会直接建立回车与submit按钮之间的关联

  6. jq form表单渲染单选框内容渲染

    单选框赋值 单选按钮赋值的主要就在于一个value值和name值对应,但是单选的选中状态按钮是input标签的check(选中)属性 当newattr的属性是1的时候为true,或者当newattr的 ...

  7. Django 之 form表单

    Django中的Form表单 1.背景 平时我们在书写form表单时,经常都是手动的去写一些input标签,让用户输入一些功能,进行一些校验的判断,等等.Django中的form表单就能够帮我们去实现 ...

  8. form表单 获取与赋值

    form表单中使用频繁的组件: 文本框.单选框.多选框.下拉框.文本域form通过getValues()获取表单中所有name的值 通过setValues({key:values})给对应的name值 ...

  9. ASP.NET WebForm Form表单如何实现MVC那种“自动装配”效果呢?

    我们知道ASP.NET MVC有个强大的地方就是Form表单提交到action的时候,可以直接将Form的参数直接装配到action的参数实体对象中 比如 action方法 Register(User ...

随机推荐

  1. Java Ioc详解和实现

    作者:竹竿 这章我们讲Java Spring的Ioc控制反转, DI依赖注入. 阅读此文之前,必须深入理解Java反射原理. 1. Ioc控制反转 原来类对象实例的创建都是有程序员自己通过new进行的 ...

  2. Linux:join命令详解

    join 处理两个文件之间的数据,并且将两个文件中有相同的数据的那一行加在一起 语法 join(选项)(file1 file2) 选项 -a<1或2>:除了显示原来的输出内容之外,还显示指 ...

  3. ogg高版本到低版本同步

    源端ogg版本: [oracle@rac1 ogg]$ ggsci -v Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1 ...

  4. linux c++ 多线程心得

    好久没写多线程了,工作好几年也没怎么大规模的写过多线程,都是成形的架构里写业务逻辑.偶尔自己写了下,各种踩坑... 1.string 不是线程安全的 一个特例是std::string.在一些STL的实 ...

  5. iOS中数组遍历的方法及比较

    数组遍历是编码中很常见的一种需求,我们来扒一拔iOS里面都有什么样的方法来实现,有什么特点. 因为ios是兼容C语言的,所以c语言里面的最最常见的for循环遍历是没有问题的. 本文中用的数组是获取的系 ...

  6. vue 之node.js 02

    文档 铺垫 以前网页制作web1.0 如今是web2.0-->交互式操作 前端工具 grunt gulp webpack :打包机 作用:将项目中的js,css,img,font,html等进行 ...

  7. 【剑指offer】二叉树中和为某一值的路径,C++实现

    原创文章,转载请注明出处! 博客文章索引地址 1.题目 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径由结点和有向边组成,从根结点到叶节点. // 二叉树结点的定义 st ...

  8. java小知识点 2015/10/6

    java中length,length(),size()区别: 1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度 2 java中的length()方法是针对字 ...

  9. BZOJ - 3744 Gty的妹子序列 (区间逆序对数,分块)

    题目链接 静态区间逆序对数查询,这道题用线段树貌似不好做,可以把区间分成$\sqrt n$块,预处理出两个数组:$sum[i][j]$和$inv[i][j]$,$sum[i][j]$表示前i个块中小于 ...

  10. JPA级联(一对一 一对多 多对多)注解【实际项目中摘取的】并非自己实际应用

    下面把项目中的用户类中有个:一对一  一对多  多对多的注解对应关系列取出来用于学习      说明:项目运行正常 问题类:一对多.一对一.多对多 ============一对多 一方的设置 @One ...