JavaScript

超轻量级php框架startmvc

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

更新时间:2020-05-02 21:24:01 作者:startmvc
要使bootstrap-table实现可编辑,需要配合使用x-editable插件。先在页面上导入必要的css和js文件

要使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>

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

bootstrap table x editable