欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

动态form表单_动态设置form表单的元素值

程序员文章站 2022-02-02 20:30:19
...

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

先来看效果图如下:

动态form表单_动态设置form表单的元素值


这就相当于 ajax 返回的json, 元素是通过 name 来查找的, 其基本形式: name : value ,checkbox 比较特殊,它是多个并存,所以要 "选中" 它得通过值来查找, 值对上了,就把它"选中"

var data = {a:´aaaa´, b:´2´, ´c´:[1,2,4]}


当然, 还有清除数据的情况:

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>


若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力。

想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。

或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。

为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。