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 相关文章推荐
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
artDialog双击会关闭对话框的修改过程分享
Aug 05 Javascript
jquery 实现密码框的显示与隐藏示例代码
Sep 18 Javascript
分享Javascript中最常用的55个经典小技巧
Nov 29 Javascript
JavaScript的this关键字的理解
Jun 18 Javascript
jQuery实现背景滑动菜单
Dec 02 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 Javascript
浅谈webpack-dev-server的配置和使用
May 17 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
Feb 21 Javascript
Vue+Django项目部署详解
May 30 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 29 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
jquery实现表单验证简单实例演示
2015/11/23 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
python字典排序实例详解
2015/05/20 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
深入浅析Python的类
2018/06/22 Python
python中的列表与元组的使用
2019/08/08 Python
Python函数生成器原理及使用详解
2020/03/12 Python
Python如何实现的二分查找算法
2020/05/27 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
艺术学院毕业生自我评价
2014/03/02 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
Python中文纠错的简单实现
2021/07/07 Python
Python matplotlib绘制雷达图
2022/04/13 Python