jQuery动态操作表单示例【基于table表格】


Posted in jQuery onDecember 06, 2018

本文实例讲述了jQuery动态操作表单。分享给大家供大家参考,具体如下:

<html>
<head>
  <title>jquery表格操作</title>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <style type="text/css">
    table
    {
      border: black solid 1px;
      border-collapse: collapse;
    }
    td
    {
      border: black solid 1px;
      padding: 3px;
    }
    .td_Num
    {
      width: 60px;
      text-align: center;
    }
    .td_Item
    {
      width: 160px;
      text-align: center;
    }
    .td_Oper
    {
      width: 120px;
      text-align: center;
    }
    .td_Oper span
    {
      cursor: pointer;
    }
  </style>
</head>
<body>
  <table>
    <tr>
      <td class='td_Num'>
        序号
      </td>
      <td class='td_Item'>
        步骤名称
      </td>
      <td class='td_Item'>
        步骤描述
      </td>
      <td class='td_Oper'>
        相关操作 <a href="#" rel="external nofollow" onclick="add_line();">添加</a>
      </td>
    </tr>
  </table>
  <table id="content">
  </table>
  <input type="button" value="提交数据" id="btnSubmit" onclick="SaveData()" />
</body>
</html>
<script type="text/javascript">
  var currentStep = 0;
  var max_line_num = 0;
  //添加新记录
  function add_line() {
    max_line_num = $("#content tr:last-child").children("td").html();
    if (max_line_num == null) {
      max_line_num = 1;
    }
    else {
      max_line_num = parseInt(max_line_num);
      max_line_num += 1;
    }
    $('#content').append(
    "<tr id='line" + max_line_num + "'>" +
      "<td class='td_Num'>" + max_line_num + "</td>" +
      "<td class='td_Item'><input type='text' class='stepName' value='步骤名称" + max_line_num + "'></input></td>" +
      "<td class='td_Item'><input type='text' class='stepDescription' value='步骤描述" + max_line_num + "'></td>" +
      "<td class='td_Oper'>" +
        "<span onclick='up_exchange_line(this);'>上移</span> " +
        "<span onclick='down_exchange_line(this);'>下移</span> " +
        "<span onclick='remove_line(this);'>删除</span> " +
      "</td>" +
    "</tr>");
  }
  //删除选择记录
  function remove_line(index) {
    if (index != null) {
      currentStep = $(index).parent().parent().find("td:first-child").html();
    }
    if (currentStep == 0) {
      alert('请选择一项!');
      return false;
    }
    if (confirm("确定要删除改记录吗?")) {
      $("#content tr").each(function () {
        var seq = parseInt($(this).children("td").html());
        if (seq == currentStep) { $(this).remove(); }
        if (seq > currentStep) { $(this).children("td").each(function (i) { if (i == 0) $(this).html(seq - 1); }); }
      });
    }
  }
  //上移
  function up_exchange_line(index) {
    if (index != null) {
      currentStep = $(index).parent().parent().find("td:first-child").html();
    }
    if (currentStep == 0) {
      alert('请选择一项!');
      return false;
    }
    if (currentStep <= 1) {
      alert('已经是最顶项了!');
      return false;
    }
    var upStep = currentStep - 1;
    //修改序号
    $('#line' + upStep + " td:first-child").html(currentStep);
    $('#line' + currentStep + " td:first-child").html(upStep);
    //取得两行的内容
    var upContent = $('#line' + upStep).html();
    var currentContent = $('#line' + currentStep).html();
    $('#line' + upStep).html(currentContent);
    //交换当前行与上一行内容
    $('#line' + currentStep).html(upContent);
    $('#content tr').each(function () { $(this).css("background-color", "#ffffff"); });
    $('#line' + upStep).css("background-color", "yellow");
    event.stopPropagation(); //阻止事件冒泡
  }
  //下移
  function down_exchange_line(index) {
    if (index != null) {
      currentStep = $(index).parent().parent().find("td:first-child").html();
    }
    if (currentStep == 0) {
      alert('请选择一项!');
      return false;
    }
    if (currentStep >= max_line_num) {
      alert('已经是最后一项了!');
      return false;
    }
    var nextStep = parseInt(currentStep) + 1;
    //修改序号
    $('#line' + nextStep + " td:first-child").html(currentStep);
    $('#line' + currentStep + " td:first-child").html(nextStep);
    //取得两行的内容
    var nextContent = $('#line' + nextStep).html();
    var currentContent = $('#line' + currentStep).html();
    //交换当前行与上一行内容
    $('#line' + nextStep).html(currentContent);
    $('#line' + currentStep).html(nextContent);
    $('#content tr').each(function () { $(this).css("background-color", "#ffffff"); });
    $('#line' + nextStep).css("background-color", "yellow");
    event.stopPropagation(); //阻止事件冒泡
  }
  //保存数据
  function SaveData() {
    var data = "<root>";
    $('#content tr').each(function () {
      data += "<item>";
      var stepName = $(this).find("td:eq(1)").find("input").val();
      var stepDescription = $(this).find("td:eq(2)").find("input").val();
      data += "  <stepName>" + stepName + "</stepName>";
      data += "  <stepDescription>" + stepDescription + "</stepDescription>";
      data += "<item>";
    });
    data += "</root>";
    alert(data);
  }
</script>

使用本站在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun,测试运行上述代码可得到如下运行效果:

jQuery动态操作表单示例【基于table表格】

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

jQuery 相关文章推荐
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
jQuery树插件zTree使用方法详解
May 02 jQuery
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
jQuery使用zTree插件实现可拖拽的树示例
Sep 23 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
jQuery实现的监听导航滚动置顶状态功能示例
Jul 23 jQuery
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 #jQuery
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 #jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 #jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 #jQuery
利用jquery和BootStrap实现动态滚动条效果
Dec 03 #jQuery
jQuery-ui插件sortable实现自由拖动排序
Dec 01 #jQuery
jquery拖拽自动排序插件使用方法详解
Jul 20 #jQuery
You might like
PHP仿盗链代码
2012/06/03 PHP
PHP四大安全策略
2014/03/12 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
如何实现iframe父子传参通信
2020/02/05 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
python远程登录代码
2008/04/29 Python
python实现bitmap数据结构详解
2014/02/17 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
Python爬虫代理IP池实现方法
2017/01/05 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
django最快程序开发流程详解
2019/07/19 Python
Python创建数字列表的示例
2019/11/28 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python如何读取、写入JSON数据
2020/07/28 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
物流仓管员岗位职责
2013/12/04 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript