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中的sortable排序之后的保存状态的解决方法
Jan 28 Javascript
js 单击式的下拉菜单效果实例
Aug 13 Javascript
玩转方法:call和apply
May 08 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
Oct 09 Javascript
深入探讨javascript中的数据类型
Mar 04 Javascript
JavaScript中split() 使用方法汇总
Apr 17 Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 Javascript
AngularJS  ng-table插件设置排序
Sep 21 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
详解Vue微信公众号开发踩坑全记录
Aug 21 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
js实现跳一跳小游戏
Jul 31 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完整的日历类(CLASS)
2006/11/27 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
prototype与__proto__区别详细介绍
2017/01/09 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
python创建n行m列数组示例
2019/12/02 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
Order by的几种用法
2013/06/16 面试题
银行财务部实习生的自我鉴定
2013/11/27 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
《欢乐的泼水节》教学反思
2014/04/22 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
紧急迫降观后感
2015/06/15 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript