html实训收获,实训收获以前端框架bootstrap/jquery总结(一)

本文作者分享了在大三实训期间,通过学习和实践,从初级前端开发者成长为具备一定经验的开发者的过程。文章详细介绍了如何使用Tabulator和bootstrap-table插件创建一个包含编辑、统计和删除功能的进销存管理系统表格。重点讲解了Tabulator的使用,包括表格初始化、列属性设置、数据加载以及自定义验证函数。此外,还提到了如何添加行和进行用户输入验证,为实际项目提供了实用的前端解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学校在大三的时候开了实训课程,八人组队去完成一个为期六周的进销存管理系统。在这六周里,我从一个只会写粗糙静态页面的前端菜鸟,变成了有那么一丢丢经验的前端菜鸟。我仍然很菜,可是我打算把这段时期学习到的前端知识总结一下,就当是记念这段实训生活吧!javascript

进销存管理系统主要以表格为主,进行一些新增、统计、删除的操做,其中表格大体分为两类:可编辑的和点击按钮后可编辑的。可是普通的表格相似于

的定义并不能知足咱们的需求。所以在前期的挣扎思考中,咱们选择了bootstrap-table和jQuery-ui的 tabulator的表格插件,分别主要用来实现点击按钮后可实现和可编辑的表格。今天就先主要说一下Tabulator。css

Tabulator是jquery-ui中很冷门的一个插件,除了官方文档,没有任何的可参考文献、博客等,所以探索之路困难重重。html

首先是Tabulator的官方网址:http://tabulator.info/前端

1、Tabulator的初始化java

首先引入Tabulator的包,能够下载以后在项目中引用,也能够直接用cdn的地址,可是要注意,记得引用jquery-ui的包:jquery

表格定义很是简单,直接看代码:数据库

接下来就是在

$(function(){

$("#example-table").tabulator({

//设置列属性

columns:[

{formatter:"rownum", align:"center", width:40},

{title:"型号", field:"model",editor:true,headerSort:false,editor:"select",editorParams:getmodel(),widthGrow:1},

{title:"银", field:"agWeight",align:"center",headerSort:false,editor:true},

{title:"铜", field:"cuWeight",editor:true,headerSort:false,widthGrow:1},

{title:"锌", field:"znWeight", align:"center",headerSort:false,editor:true,widthGrow:1},

{title:"镉", field:"cdWeight", align:"center",headerSort:false,editor:true,widthGrow:1},

{title:"锡", field:"snWeight", align:"center",headerSort:false,editor:true,widthGrow:1},

{title:"废料", field:"wasteWeight",align:"center",headerSort:false,editor:true,widthGrow:1},

{title:"胚料产出", field:"batchBlanksWeight", align:"center",headerSort:false,editor:true,widthGrow:1},

{title:"炉数(个)", field:"fireNumber",align:"center",headerSort:false,editor:true,widthGrow:1},

{title:"操做",field:"operation",formatter:"tickCross",align:"center",headerSort:false,editor:false,widthGrow:1,cellClick:function(e, cell){cell.getRow().delete()}}

],

});

});

从代码中能够看出,,tabulator主要是定义列的属性,并对列的样式进行选择。后端

2、表格参数简介函数

title:title字段就是显示出来的表头;

field就是这个表头在后端的名字啦,要和后台的命名保持一致,否则先后端会出错!

editor是用来确认这一列是否能够编辑,true为可编辑,false则相反。同时!还能够在用来定义列的其余编辑格式,好比选择框

0f90223963617490e135694ac26edbbd.png

如图这样,点击单元格就会出现一个下拉选择框,框内可选项分别是仓库、工厂、商务和领导。若是是动态获取的下拉选项,那么久按照上一页的代码,经过调用函数来实现。

align:这个就不用说了,写过HTML的应该都知道,这个是用来限制位置的,可是要注意的是,这个align是针对于单元格内容的位置,而不是表头的位置。

headerSort:这也是Tabulator很厉害的地方了,能够对列进行排序,经过true/false来控制排序开关。

widthGrow:这是用来自动控制列的宽度的。

formatter:"rownum":众所周知,表格通常都有行号,这个即是用来控制行号的。

若是编辑错了就会须要一个按钮来进行删除操做,只要设置formatter:"tickCross"以及在列的初始中写以下代码,就会达到你想要的效果。

802128be209d36a95b7bd64824a65488.png

说了这么久按理说应该有效果图了,可是这时表格是空的,灰不溜秋的,这个时候咱们先来初始化咱们的表格:

$(function(){

//表格列的初始化结束

var tabledata = [

{},{},{},{}

];

//load sample data into the table

$("#example-table").tabulator("setData", tabledata);

});

由代码能够看出咱们给表格增长了四行空的数据。好了咱们看一下效果图:

5ec4d31e07cf013458d799f0d20826ae.png

其中型号是从后台获取,点击型号列的任一单元格,就会显示

7e91a30fe54bcfde6e1ddbc495f52779.png下拉选项是数据库中读取的。

表格中每一个单元格都是能够编辑的,这是这个表格插件的最基本的特色。

那么下一个问题来了:若是我要添加的数据不止四行呢?我是这么实现的:

先作一个增长按钮:

b69f643f4748cf1ca82438c11bb541f6.png

效果是这样的:

2594fe03b5c9d4eb6541ff832d7f76c2.png

点击"加号",就会多一行在当前页面上,这是经过js来实现的:

//Add row on "Add Row" button click

$("#add-row").click(function(){

$("#example-table").tabulator("addRow", {});

});

到如今为止,一个完整的可删可增可编辑的表格就初步完成了。

3、额外需求

一个实际的项目每每是须要实际去约束用户的输入,不然就不配称为一个实际的系统。

那么如何对输入进行输入的验证呢?

最简单的方法是Tabulator的官方文档提供的:使用validator属性来进行约束

例如,此列为必填列,能够写做为:validator:"required";此列为整数,能够写做为:validator:"Integer"...

除此以外还有最小值、最大值的验证等等,若是不知足输入的验证,单元格将会变红色而且被锁定,没法进行其余操做,知道数据输入为知足须要的。

有兴趣有须要的请参见官方文档http://tabulator.info/docs/3.5#calculations。

今天我要提到的验证是本身写函数来进行验证的,若是某一列要求输入三位之内的小数,咱们能够写一个关于三位小数的函数:

//验证输入为不超过三位小数的数字

function threefloatnumber(value){

//cell - the cell component for the edited cell

//value - the new input value of the cell

//parameters - the parameters passed in with the validator

if(value==""){

return true;

}

if(value==undefined){

return true;

}

if(isNull(value)){

return true;

}

if(!isNumber(value)){

return false;

}

var datastr=value+"";

if(datastr.split('.').length > 1 && datastr.split('.')[1].length>3){

//alert("超过三位小数");

return false;

}

if(value<0){

//alert("不能为负");//注意函数里不要出现alert,不然针对错误的输入一直提示,会形成死循环。

return false;

}

return true;

}

此时的验证能够在表格初始化的列里validator:threefloatnumber,没错,这里没有以往调用函数的 ()了。不过我要说明的是,在表格的初始化里调用输入验证时,相对于外部校验较为死板,只能经过锁定单元格的方式来提醒用户,实在是不够友好。建议在表格提交的时候作外部验证。

今天的表格初始化就到这里啦。经过对这种冷门插件的学习,我深切感觉到了官方文档的重要性,不少一开始没头没脑的问题,在官方文档里均可以找到答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值