bootstrap table实现单击单元格可编辑功能


Posted in Javascript onMarch 28, 2017

要使bootstrap-table实现可编辑,需要配合使用x-editable插件。

先在页面上导入必要的css和js文件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
 <title>bootstrap-table demo</title>
 <!-- Bootstrap 3.3.6 -->
 <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" rel="external nofollow" >
 <!-- Bootstrap table -->
 <link rel="stylesheet" href="bootstrap-table-1.11.0/bootstrap-table.css" rel="external nofollow" >
 <!-- x-editable -->
 <link rel="stylesheet" href="x-editable/bootstrap3-editable/css/bootstrap-editable.css" rel="external nofollow" >
</head>
<body>
 <div class="container">
 <p></p>
 <table id="table" class="table table-bordered table-hover">
 </table>
 </div>
 <!-- jQuery 2.2.0 -->
 <script src="jQuery-2.2.0.min.js"></script>
 <!-- Bootstrap 3.3.6 -->
 <script src="bootstrap/js/bootstrap.min.js"></script>
 <!-- bootstrap table -->
 <script src="bootstrap-table-1.11.0/bootstrap-table.js"></script>
 <script src="bootstrap-table-1.11.0/extensions/editable/bootstrap-table-editable.js"></script>
 <script src="x-editable/bootstrap3-editable/js/bootstrap-editable.js"></script>
 <script src="bootstrap-table-1.11.0/locale/bootstrap-table-zh-CN.min.js"></script>
 <script type="text/javascript">
 $(function(){
  $('#table').bootstrapTable({
   url:'data.json',
   columns:[
    {field: 'id',title: 'ID'},
    {field: 'name',title: '名称'},
    {field: 'price',title: '单价'},
    {field: 'number',title: '数量', sortable:true,
     cellStyle:function(value,row,index) {
      return {
       "css":{
        padding:'0px'
       }
      };
     },
     formatter:function(value,row,index){
      if(value == undefined) return "0";
      else return value;
     },
     editable:{
      type:'text',
      clear:false,
      validate:function(value){
       if(isNaN(value)) return {newValue:0, msg:'只允许输入数字'};
       else if(value<0) return {newValue:0, msg:'数量不能小于0'};
       else if(value>=1000000) return {newValue:0, msg:'当前最大只能输入999999'};
      },
      display:function(value){
       $(this).text(Number(value));
      },
      //onblur:'ignore',
      showbuttons:false,
      defaultValue:0,
      mode:'inline'
     }
    },
    {field:'amount', title: '总价'}
   ],
   //height:300,
   idField:'id',
   onEditableHidden: function(field, row, $el, reason) { // 当编辑状态被隐藏时触发
    if(reason === 'save') {
     var $td = $el.closest('tr').children();
     $td.eq(-1).html((row.price*row.number).toFixed(2));
     $el.closest('tr').next().find('.editable').editable('show'); //编辑状态向下一行移动
    } else if(reason === 'nochange') {
     $el.closest('tr').next().find('.editable').editable('show');
    }
   }
  });
  $('#table').on( 'click', 'td:has(.editable)', function (e) {
   //e.preventDefault();
   e.stopPropagation(); // 阻止事件的冒泡行为
   $(this).find('.editable').editable('show'); // 打开被点击单元格的编辑状态
  } );

 });
 </script>

</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js修改地址栏URL参数解决url参数问题
Dec 15 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
Sep 04 Javascript
vue axios重复点击取消上一次请求封装的方法
Jun 19 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
layui form表单提交之后重新加载数据表格的方法
Sep 11 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
node实现mock-plugin中间件的方法
Dec 25 Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 03 Javascript
字节飞书面试promise.all实现示例
Jun 16 Javascript
Web前端框架Angular4.0.0 正式版发布
Mar 28 #Javascript
JavaScript实现经纬度转换成地址功能
Mar 28 #Javascript
js实现多行文本框统计剩余字数功能
Mar 28 #Javascript
js实现下拉框效果(select)
Mar 28 #Javascript
vue2.0获取自定义属性的值
Mar 28 #Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
Mar 27 #Javascript
利用NPM淘宝的node.js镜像加速nvm
Mar 27 #Javascript
You might like
来自PHP.NET的入门教程
2006/10/09 PHP
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
domReady的实现案例
2016/11/23 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
JS动态修改网页body的背景色实例代码
2017/10/07 Javascript
js将键值对字符串转为json字符串的方法
2018/03/30 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
Java数据结构之堆(优先队列)
2022/05/20 Java/Android