动态设置form表单的元素值

因为经常用到的功能,所以我想到封装一个函数,用起来更方便快捷。。
先来看效果图如下:

var data = {a:'aaaa', b:'2', 'c':[1,2,4]}
这就相当于 ajax 返回的json, 元素是通过 name 来查找的, 其基本形式: name : value
checkbox 比较特殊,它是多个并存,所以要 "选中" 它得通过值来查找, 值对上了,就把它"选中"
当然, 还有清除数据的情况:
var data = {a:'', b:'', 'c':''}
像这样,设置为空值,就可以了。
说到这里,是不是很好玩呀?
ok,下面就是基于 jqery 写的代码:
<form id="form1" > <input type="text" name="a" />
<br/>
<input type="radio" name="b" value="1" checked />1
<input type="radio" name="b" value="2" />2
<input type="radio" name="b" value="3" />3
<br/>
<input type="checkbox" name="c[]" value="1" />a
<input type="checkbox" name="c[]" value="2" />b
<input type="checkbox" name="c[]" value="3"/>c
<input type="checkbox" name="c[]" value="4"/>d
</form>
<script type="text/javascrip">
//编辑表单
$.fn.formEdit = function(data){
//data = {"text":"value", "checkbox":[1,2,4], "radio":"10"}; if(typeof data == "undefined"){
this.reset();
return this;
}
return this.each(function(){var input, name;
for(var i = 0; i < this.length; i++){
input = this.elements[i];
//修正checkbox
if(input.type == "checkbox"){
name = input.name.replace(/(.+)\[\]$/, "$1");
}else{
name = input.name;
}
if(typeof data[name] == "undefined") continue;
switch(input.type){
case "checkbox": if(data[name] == ""){
input.checked = false;
}else{
//数组查找元素
if(data[name].indexOf(input.value) > -1){
input.checked = true;
}else{
input.checked = false;
}
}
}
break;
case "radio":
if(data[name] == ""){
input.checked = false;
}else if(input.value == data[name]){
input.checked = true;
}
break;
default: input.value = data[name];
}
}
}) }; data = {
"a":"张三",
"b":[1,3,4],
"c":"2",
};
$('#form1').formEdit(data);
</script>
动态设置form表单的元素值的更多相关文章
- javascript将form表单中的元素值封装成json格式
把form表单中的元素值封装成json function toJSON(form)//form是要进行封装的form表单对象,dom对象,可以通过document.mainForm获得,mainFor ...
- jQuery中设置form表单中action的值的方法
下面介绍在jQuery中设置form表单中action的值的方法. $("#myFormId").attr("action", "userinfo.s ...
- js动态创建Form表单并提交
javascript动态创建Form表单和表单项,然后提交表单请求,最后删除表单,代码片段如下(Firefox测试通过): var dlform = document.createElement('f ...
- 不通过getElementByName实现获取表单数据 (document.form表单的name值.input输入框的name值)
function update() { //document.form表单的name值.input输入框的name值 var username = document.form1.username; v ...
- vue+element创建动态的form表单.以及动态生成表格的行和列
动态创建form表单,网上有插件 (form-create) 不过我不知道它怎么用,没有使用成功,如果你使用成功了,欢迎下方留言. 最后我使用了笨方法,针对各个表单写好通用的组件,然后根据type用v ...
- form 表单提交返回值问题
form不比ajax,即使后台返回值后,在页面也不知道怎么去取值判断提交状态.所以前几天结合网上资料整了一个小案例,需要用到ajaxSubmit,即通过ajax来提交表单,好处在于可以在任何情况下进行 ...
- jQuery动态创建form表单并提交到后台(携带一定的数据进行页面跳转)
今天遇到这么一个需求,携带一个编号一个名字跳转到另一个JSP页面,直接页面跳转(get携带数据)的话不太安全,于是想到到后台转发一下. 第一种:直接以表单提交方式的进行 JS代码: var form ...
- 使用Vue动态生成form表单
form-create 表单生成器 具有数据收集.校验和提交功能的表单生成器,支持双向数据绑定和事件扩展,组件包含有复选框.单选框.输入框.下拉选择框等表单元素以及省市区三级联动,时间选择,日期选择, ...
- vue中怎么动态生成form表单
form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持3个UI框架,并且支持生成任何 Vue 组件.内置20种常用表单组件和自定义组件,再复杂 ...
随机推荐
- java调用本地方法的时候报错 could not find the main class:xx.program will exit
如图所示,当在java调用本地方法的时候报错 我的解决办法是把dll文件放到System.out.println(System.getProperty("java.library.path& ...
- Powerdesigner自定义DBMS(以derby数据库为例)
Powerdesigner自定义DBMS Powerdesigner以下简称PD.PD默认支持的DBMS不够用时,我们就需要自己定义了.以apache derby数据库为例.1.DBMS的定义文件PD ...
- js中的getAttribute方法使用示例
getAttribute()方法是一个函数.它只有一个参数——你打算查询的属性的名字,下面为大家介绍下其具体的使用 getAttribute()方法 至此,我们已经向大家介绍了两种检索特定元素节点 ...
- 【原创】ui.router源码解析
Angular系列文章之angular路由 路由(route),几乎所有的MVC(VM)框架都应该具有的特性,因为它是前端构建单页面应用(SPA)必不可少的组成部分. 那么,对于angular而言,它 ...
- C++ Primer Plus第6版18个重点笔记
下面是我看<C++ Primer Plus>第6版这本书后所做的笔记,作为备忘录便于以后复习. 笔记部分 C++的const比C语言#define更好的原因? 首先,它能够明确指定类型,有 ...
- 登录DA面板出现:License has expired
登录DA面板出现:License has expired的解决方法. 首先看是否过期,如果出现The license looks fine on this end. 登录 SSH as root # ...
- 最近为毛喜欢上C/C++语言了
旁观者李四说:此人大笨也!我用鼠标随便拖几个控件, 就是一个xxx管理系统了,你用C语言怕是一年也写不出来吧! 好吧,我要承认,讲这话的都已经是mS的奴才了,别的我不了解, MFC本身就是一个封闭的架 ...
- 阿里云服务器配置 SVN 服务器与生产站点同步
作为linux的门外汉,一直觊觎svn的方便性,在有台aliyun的情况下,一起来搞搞. 1.环境 阿里云 centos5.5 2.安装svn yum -y install subve ...
- Step
php+MySQL html+css JQuery Mobile JavaScript weiPHP Sina Cloud 微信公众订阅号平台开发
- 推荐一个linux下的web压力测试工具神器webbench
推荐一个linux下的web压力测试工具神器webbench2014-04-30 09:35:29 来源: 评论:0 点击:880 用多了apache的ab工具之后你就会发现ab存在很多问题, ...