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

jQuery实现获取form表单内容及绑定数据到form表单操作分析

程序员文章站 2022-06-30 11:54:20
本文实例讲述了jquery实现获取form表单内容及绑定数据到form表单操作。分享给大家供大家参考,具体如下: 在日常开发的过程中,难免会用到form表单,我们需要获取...

本文实例讲述了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>

使用在线html/css/javascript代码运行工具 http://tools.jb51.net/code/htmljsrun测试运行效果如下:

jQuery实现获取form表单内容及绑定数据到form表单操作分析

更多关于jquery相关内容感兴趣的读者可查看本站专题:《jquery form操作技巧汇总》、《jquery操作json数据技巧汇总》、《jquery常用插件及用法总结》、《jquery扩展技巧总结》、《jquery表格(table)操作技巧汇总》及《jquery选择器用法总结

希望本文所述对大家jquery程序设计有所帮助。