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 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
Jul 07 Javascript
比较新旧两个数组值得增加和删除的JS代码
Oct 30 Javascript
使用jquery自定义鼠标样式满足个性需求
Nov 05 Javascript
javaScript如何生成xmlhttp
Dec 16 Javascript
浅谈几种常用的JS类定义方法
Jun 08 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
iview table高度动态设置方法
Mar 14 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
在vue中根据光标的显示与消失实现下拉列表
Sep 29 Javascript
浅谈vue-props的default写不写有什么区别
Aug 09 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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
关于php循环跳出的问题
2013/07/01 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
PHP 无限级分类
2017/05/04 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
offsetParent 算法分析
2010/04/05 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
python 命名规范知识点汇总
2020/02/14 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
纽约海:Sea New York
2018/11/04 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
奶茶专卖店创业计划书
2014/01/18 职场文书
安全协议书
2014/04/23 职场文书
钳工实训报告总结
2014/11/04 职场文书
小学四年级作文之写景
2019/08/23 职场文书
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技