jQuery实现获取form表单内容及绑定数据到form表单操作分析


Posted in jQuery onJuly 03, 2018

本文实例讲述了jQuery实现获取form表单内容及绑定数据到form表单操作。分享给大家供大家参考,具体如下:

在日常开发的过程中,难免会用到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>

使用在线HTML/CSS/JavaScript代码运行工具 http://tools.3water.com/code/HtmlJsRun测试运行效果如下:

jQuery实现获取form表单内容及绑定数据到form表单操作分析

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery实现的背景颜色渐变动画效果示例
Mar 24 jQuery
jQuery复合事件结合toggle()方法的用法示例
Jun 10 jQuery
jQuery实现点击关注和取消功能
Jul 03 jQuery
jQuery Position方法使用和兼容性
Aug 23 jQuery
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 jQuery
Vue项目中使用jquery的简单方法
May 16 jQuery
jQuery实现的记住帐号密码功能完整示例
Aug 03 jQuery
jQuery实现简易聊天框
Feb 08 jQuery
jQuery实现视频展示效果
May 30 jQuery
jQuery阻止事件冒泡实例分析
Jul 03 #jQuery
jQuery实现模糊搜索功能的方法分析
Jun 29 #jQuery
jQuery实现获取动态添加的标签对象示例
Jun 28 #jQuery
jQuery实现获取选中复选框的值实例详解
Jun 28 #jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 #jQuery
通过jquery.cookie.js实现记住用户名、密码登录功能
Jun 20 #jQuery
jQuery使用动画队列自定义动画操作示例
Jun 16 #jQuery
You might like
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
jquery和js实现对div的隐藏和显示方法
2014/09/26 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
python单例模式实例分析
2015/04/08 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python中turtle作图示例
2017/11/15 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
Python中SQLite如何使用
2020/05/27 Python
python中rb含义理解
2020/06/18 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
化工专业个人的求职信范文
2013/11/28 职场文书
党员违纪检讨书
2014/02/18 职场文书
投标承诺书范本
2014/03/27 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python