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 相关文章推荐
javascript下IE与FF兼容函数收集
Sep 17 Javascript
window.requestAnimationFrame是什么意思,怎么用
Jan 13 Javascript
jquery indexOf使用方法
Aug 19 Javascript
js创建对象的方式总结
Jan 10 Javascript
jQuery学习笔记之入门
Dec 14 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
Mar 30 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
Sep 14 Javascript
js利用递归与promise 按顺序请求数据的方法
Aug 30 Javascript
Vue解析剪切板图片并实现发送功能
Feb 04 Javascript
vue 动态组件用法示例小结
Mar 06 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编程效率的53个要点(经验小结)
2010/09/04 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
js关闭模态窗口刷新父页面或跳转页面
2012/12/13 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python中logging包的使用总结
2018/02/28 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
如何判断计算机可能已经中马
2013/03/22 面试题
国税会议欢迎词
2014/01/16 职场文书
庆六一宣传标语
2014/10/08 职场文书
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
python 镜像环境搭建总结
2022/09/23 Python