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


Posted in Javascript onFebruary 24, 2016

在日常开发的过程中,难免会用到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>

以上就是jquery获取form表单内容以及绑定数据到form表单的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
Jquery 模拟用户点击超链接或者按钮的方法
Oct 25 Javascript
jquery判断元素是否隐藏的多种方法
May 06 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 Javascript
JS检测是否可以访问公网服务器功能代码
Jun 19 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
JavaScript调试之console.log调试的一个小技巧分享
Aug 07 Javascript
vue中SPA单页面应用程序详解
Nov 07 Javascript
详解小程序原生使用ES7 async/await语法
Aug 06 Javascript
JS实现水平移动与垂直移动动画
Dec 19 Javascript
javascript cookie的简单应用
Feb 24 #Javascript
javascript的正则匹配方法学习
Feb 24 #Javascript
适用于javascript开发者的Processing.js入门教程
Feb 24 #Javascript
JavaScript设计模式经典之命令模式
Feb 24 #Javascript
JavaScript设计模式经典之工厂模式
Feb 24 #Javascript
JavaScript的设计模式经典之建造者模式
Feb 24 #Javascript
JavaScript的设计模式经典之代理模式
Feb 24 #Javascript
You might like
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
上课迟到检讨书100字
2014/01/11 职场文书
好人好事事迹材料
2014/02/12 职场文书
委托公证书
2014/04/08 职场文书
五五普法心得体会
2014/09/04 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
公司市场部岗位职责
2015/04/15 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书