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的图片懒加载js
Jun 30 Javascript
js判断样式className同时增加class或删除class
Jan 30 Javascript
javascript函数式编程实例分析
Apr 25 Javascript
jquery仅用6行代码实现滑动门效果
Sep 07 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
iview table高度动态设置方法
Mar 14 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
js+canvas实现验证码功能
Sep 21 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
详解nvm管理多版本node踩坑
Jul 26 Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 Javascript
深入理解 TypeScript Reflect Metadata
Dec 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源代码
2006/10/09 PHP
Yii清理缓存的方法
2016/01/06 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
JavaScript编程开发中的五个实用小技巧
2010/07/22 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python中多线程thread与threading的实现方法
2014/08/18 Python
python使用Berkeley DB数据库实例
2014/09/26 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
初学者学习Python好还是Java好
2020/05/26 Python
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
暑假实习求职信范文
2013/09/22 职场文书
2014年教师培训的自我评价
2014/01/03 职场文书
文明学生事迹材料
2014/01/29 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
企业文化宣传标语
2014/06/09 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技