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 相关文章推荐
让getElementsByName适应IE和firefox的方法
Sep 24 Javascript
Javascript JSQL,SQL无处不在,
May 05 Javascript
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
Jun 02 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
Dec 30 Javascript
JavaScript中的getTime()方法使用详解
Jun 10 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
解决Mac node版本升级失败的问题
May 16 Javascript
Vue 全局loading组件实例详解
May 29 Javascript
Vue+ElementUI table实现表格分页
Dec 14 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
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 mysql 封装类实例代码
2016/09/18 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
基于PHP实现用户在线状态检测
2020/11/10 PHP
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
js判断是否按下了Shift键的方法
2015/01/27 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
简单实现js进度条加载效果
2020/03/25 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
Python 除法小技巧
2008/09/06 Python
python3+PyQt5实现柱状图
2018/04/24 Python
Python函数式编程实例详解
2020/01/17 Python
python将数据插入数据库的代码分享
2020/08/16 Python
深入了解Python 方法之类方法 &amp; 静态方法
2020/08/17 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
升国旗仪式主持词
2014/03/19 职场文书
大学生演讲稿
2014/04/25 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
八年级物理教学反思
2016/02/19 职场文书
写作技巧:如何撰写商业计划书
2019/08/08 职场文书
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS