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中绑定事件的命名空间详解
Apr 05 Javascript
利用javascript解决图片缩放及其优化的代码
May 23 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
原生js实现图片放大缩小计时器效果
Jan 20 Javascript
原生JS实现层叠轮播图
May 17 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
May 24 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
浅析Vue自定义组件的v-model
Nov 26 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 Javascript
vue 解决provide和inject响应的问题
Nov 12 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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
微信红包随机生成算法php版
2016/07/21 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
2016/09/05 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
JAVA中截取字符串substring用法详解
2017/04/14 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
在Python中使用__slots__方法的详细教程
2015/04/28 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
酒店led欢迎词
2014/01/09 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
公务员学习习总书记“三严三实”思想汇报
2014/09/19 职场文书
高三英语复习计划
2015/01/19 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
python如何将mat文件转为png
2022/07/15 Python