• jquery获取form表单内容以及绑定数据到form表单


    在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串json数据,要将数据绑定到form表单上,这里我写了一个基于jquery的,formHelp插件,使用起来也很简单:

    获取表单的数据:$("#formid").serializeJson();

    绑定数据到表单:$("#formid").setForm(json);

    jquery.formHelp.js插件

    /**
     * 将form里面的内容序列化成json
     * 相同的checkbox用分号拼接起来
     * @param {dom} 指定的选择器
     * @param {obj} 需要拼接在后面的json对象
     * @method serializeJson
     * */
    $.fn.serializeJson=function(otherString){
        var serializeObj={},
            array=this.serializeArray();
        $(array).each(function(){
            if(serializeObj[this.name]){
                serializeObj[this.name]+=';'+this.value;
            }else{
                serializeObj[this.name]=this.value;
            }
        });
    
        if(otherString!=undefined){
            var otherArray = otherString.split(';');
            $(otherArray).each(function(){
                var otherSplitArray = this.split(':');
                serializeObj[otherSplitArray[0]]=otherSplitArray[1];
            });
        }
        return serializeObj;
    };
    
    /**
     * 将josn对象赋值给form
     * @param {dom} 指定的选择器
     * @param {obj} 需要给form赋值的json对象
     * @method serializeJson
     * */
    $.fn.setForm = function(jsonValue){
        var obj = this;
        $.each(jsonValue,function(name,ival){
            var $oinput = obj.find("input[name="+name+"]");
            if($oinput.attr("type")=="checkbox"){
                if(ival !== null){
                    var checkboxObj = $("[name="+name+"]");
                    var checkArray = ival.split(";");
                    for(var i=0;i<checkboxObj.length;i++){
                        for(var j=0;j<checkArray.length;j++){
                            if(checkboxObj[i].value == checkArray[j]){
                                checkboxObj[i].click();
                            }
                        }
                    }
                }
            }
            else if($oinput.attr("type")=="radio"){
                $oinput.each(function(){
                    var radioObj = $("[name="+name+"]");
                    for(var i=0;i<radioObj.length;i++){
                        if(radioObj[i].value == ival){
                            radioObj[i].click();
                        }
                    }
                });
            }
            else if($oinput.attr("type")=="textarea"){
                obj.find("[name="+name+"]").html(ival);
            }
            else{
                obj.find("[name="+name+"]").val(ival);
            }
        })
    }

    html测试代码

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title>jQueryFormHelp练习</title>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
        <script src="jquery.formHelp.js"></script>
        <script type="text/javascript">
    
        $(function () {
            $("#form").setForm({a: '张三家的附近可考虑将', b: '王五', c: '王五', d: 'nishi yaldjlkfjal ',e:7,f:'8;10',i:''});
        });
        function submitForm(){
            console.log($("#form").serializeJson('id:12;name:13;'));
        }
    </script>
    </head>
    
    <body>
    <form  id="form">
        <div><input type="text" name="a"  /></div>
        <div><input type="text" name="b"  id="b" /></div>
        <div><input type="hidden" name="c"  id="c" /></div>
        <div>
            <textarea name="d" rows="8" cols="40"></textarea>
            <input type="checkbox" name="f" value="10"/>
        </div>
        <div><select name="e">
            <option value="5" selected="selected">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
        </select></div>
        <div>
            <input type="checkbox" name="f" value="8" />
            <input type="checkbox" name="f" value="9"/>
        </div>
        <div>
            <input name="i" type="radio" value="王" /><input name="i" type="radio" value="小" /></div>
        <div>
            <input type="button" name="g" value="Submit" id="g" onclick="submitForm()"/>
        </div>
    </form>
    
    
    </body>
    </html>

     其他推荐文章链接:

  • 相关阅读:
    ArcGIS Pro获得一个要素图层一种方法
    ArcGIS Pro layout clone
    ActiveMapViewChanged和选择变化
    ArcGIS Pro 改变栅格的数据源
    ArcGIS Pro自定义图标
    Windows Server 2016 路由和远程访问
    IIS应用程序池_缓存回收
    asp.net RSA密钥之C#格式与Java格式转换(PEM格式)
    MD5和Hash
    C# list与数组的转换
  • 原文地址:https://www.cnblogs.com/cangowu/p/5124042.html
Copyright © 2020-2023  润新知