因为经常用到的功能,所以我想到封装一个函数,用起来更方便快捷。。

先来看效果图如下:

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表单的元素值的更多相关文章

  1. javascript将form表单中的元素值封装成json格式

    把form表单中的元素值封装成json function toJSON(form)//form是要进行封装的form表单对象,dom对象,可以通过document.mainForm获得,mainFor ...

  2. jQuery中设置form表单中action的值的方法

    下面介绍在jQuery中设置form表单中action的值的方法. $("#myFormId").attr("action", "userinfo.s ...

  3. js动态创建Form表单并提交

    javascript动态创建Form表单和表单项,然后提交表单请求,最后删除表单,代码片段如下(Firefox测试通过): var dlform = document.createElement('f ...

  4. 不通过getElementByName实现获取表单数据 (document.form表单的name值.input输入框的name值)

    function update() { //document.form表单的name值.input输入框的name值 var username = document.form1.username; v ...

  5. vue+element创建动态的form表单.以及动态生成表格的行和列

    动态创建form表单,网上有插件 (form-create) 不过我不知道它怎么用,没有使用成功,如果你使用成功了,欢迎下方留言. 最后我使用了笨方法,针对各个表单写好通用的组件,然后根据type用v ...

  6. form 表单提交返回值问题

    form不比ajax,即使后台返回值后,在页面也不知道怎么去取值判断提交状态.所以前几天结合网上资料整了一个小案例,需要用到ajaxSubmit,即通过ajax来提交表单,好处在于可以在任何情况下进行 ...

  7. jQuery动态创建form表单并提交到后台(携带一定的数据进行页面跳转)

    今天遇到这么一个需求,携带一个编号一个名字跳转到另一个JSP页面,直接页面跳转(get携带数据)的话不太安全,于是想到到后台转发一下. 第一种:直接以表单提交方式的进行 JS代码: var form ...

  8. 使用Vue动态生成form表单

    form-create 表单生成器 具有数据收集.校验和提交功能的表单生成器,支持双向数据绑定和事件扩展,组件包含有复选框.单选框.输入框.下拉选择框等表单元素以及省市区三级联动,时间选择,日期选择, ...

  9. vue中怎么动态生成form表单

    form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持3个UI框架,并且支持生成任何 Vue 组件.内置20种常用表单组件和自定义组件,再复杂 ...

随机推荐

  1. WPF捕捉Windows关机事件

    private const int SC_SCREENSAVE = 0xF140; private const int WM_QUERYENDSESSION = 0x0011; private boo ...

  2. git基础知识总结

    1,clone git clone https://github.com/KoMiles/helloword helloword 2,pull git pull 3,commit git commit ...

  3. HDU4887_Endless Punishment_BSGS+矩阵快速幂+哈希表

    2014多校第一题,当时几百个人交没人过,我也暴力交了几发,果然不行. 比完了去学习了BSGS才懂! 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4887 ...

  4. UVALive 6124 Hexagon Perplexagon 题解

    http://vjudge.net/problem/viewProblem.action?id=37480 East Central Regional Contest Problem C: Hexag ...

  5. 《CMake实践》第三部分的示例代码的错误

    <CMake实践>的第三章,初试cmake - cmake的helloworld 中的 PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(statu ...

  6. 如何用rake tasks 生成migration对应的sql

    how-to-use-rake-tasks-to-generate-migration-sql Rakefile文件里有load_tasks的方法 http://api.rubyonrails.org ...

  7. Kalendar server Beijing Tiandiyuandian Technology Limited 果然是木马

    我的Windows 7 系统,在开始菜单里面输入msconfig ,回车打开系统配置,隐藏所有Microsoft的进程,在服务和启动项里面都有 Kalendar server   Beijing Ti ...

  8. Tushare的安装

    TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工到数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据. 考虑到python ...

  9. Java for LeetCode 066 Plus One

    Given a non-negative number represented as an array of digits, plus one to the number. The digits ar ...

  10. codeforces A. Rook, Bishop and King 解题报告

    题目链接:http://codeforces.com/problemset/problem/370/A 题目意思:根据rook(每次可以移动垂直或水平的任意步数(>=1)),bishop(每次可 ...