bootstrap 获取表格修改的结果_Jquery + dataTable + Bootstrap + 完整逻辑实现表格的增删改查...

这篇博客介绍了如何使用Jquery、DataTable和Bootstrap实现前端页面的表格操作,包括添加、修改和删除图书的功能。通过示例代码展示了数据的添加、修改和删除逻辑,以及利用Bootstrap模态框处理用户交互。
摘要由CSDN通过智能技术生成

最近在做毕设,同学在做前端页面的时候使用到JQuery、DataTable和Bootstrap这些控件,然后自己又在刷题的时候遇到一个这个demo的实现,于是就自己去官网文档上学习了一下,尝试实现这个demo

Demo代码:Demo代码

效果如下图示:

e2a371ab08d6bd3cacd8cc3b6ac2ee7c.png

f033f480765fd50728f0d633c362cb50.png

a45407d44d3085889ca3741fd6f1bcc5.png

8af872148a8448b281ac845b2b658837.png

顶部button DOM结构:

// 页面上的三个button,增删改

新增

修改

删除

这里的Modal框的实现是借助Bootstrap模态框来实现的

添加图书 Modal框的实现:

修改图书内容Modal框的实现:

删除Modal框的实现:

表格的实现:

序号书名作者价格出版社ISBN

使用到一些简单的自定义样式:

.content {

margin: 50px auto;

border: 1px solid #ccc;

}

.operation {

margin: 10px;

}

.operation > button {

margin: 10px;

}

#books_length {

float: left;

margin-left: 20px;

}

#books_filter {

float: right;

margin-right: 20px;

}

#books {

margin: 5px;

}

.center-block {

display: block;

width: 21%;

margin: auto;

}

其中,dataTable有三种数据获取方式,数组,JSON和Ajax请求数据

例如数组数据:

var data = [['', '三体', '刘慈欣', '39.00', '重庆出版社', '982513213516']]

其实官网很多小例子,大家可以参考学习

dataTables中文网

以上都是页面的DOM结构的实现,接下来,我们讲讲JS代码实现逻辑

var data = [['', '三体', '刘慈欣', '39.00', '重庆出版社', '982513213516']]

var titles = ['书名', '作者', '价格', '出版社', 'ISBN']

$(function () {

var table = $('#books').DataTable({

data: data,

"pagingType": "full_numbers",

"bSort": true,

// 国际化

"language": {

"sProcessing": "处理中...",

"sLengthMenu": "显示 _MENU_ 项结果",

"sZeroRecords": "没有匹配结果",

"sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",

"sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",

"sInfoFiltered": "(由 _MAX_ 项结果过滤)",

"sInfoPostFix": "",

"sSearch": "搜索:",

"sUrl": "",

"sEmptyTable": "表中数据为空",

"sLoadingRecords": "载入中...",

"sInfoThousands": ",",

"oPaginate": {

"sFirst": "首页",

"sPrevious": "上页",

"sNext": "下页",

"sLast": "末页"

},

// 排序方式

"oAria": {

"sSortAscending": ": 以升序排列此列",

"sSortDescending": ": 以降序排列此列"

}

},

"columnDefs": [{

"searchable": false,

"orderable": true,

"targets": 0

}],

"order": [[1, 'asc']]

});

table.on('order.dt search.dt', function() {

table.column(0, {

search: 'applied',

order: 'applied'

}).nodes().each(function(cell, i) {

cell.innerHTML = i + 1;

});

}).draw();

$('#books tbody').on('click', 'tr', function () {

if ( $(this).hasClass('selected') ) {

$(this).removeClass('selected');

}

else {

table.$('tr.selected').removeClass('selected');

$(this).addClass('selected');

}

});

// 取消添加

$("#cancelAdd").on('click', function() {

console.log('cancelAdd');

$("#addBookModal").find('input').val('')

})

// 添加图书信息

$("#addBooksInfo").on('click', function() {

console.log('addBooksInfo');

if (data.length) {

if ($("#addBookModal").find('input').val() !== '') {

var bookName = $("#bookName").val()

var bookAuthor = $("#bookAuthor").val()

var bookPrice = $("#bookPrice").val()

var bookPublish = $("#bookPublish").val()

var bookISBN = $("#bookISBN").val()

var addBookInfos = [].concat(bookName, bookAuthor, bookPrice, bookPublish, bookISBN);

for (var i = 0; i < addBookInfos.length; i++) {

if (addBookInfos[i] === '') {

alert(titles[i] + '内容不能为空')

}

}

table.row.add(['', bookName, bookAuthor, bookPrice, bookPublish, bookISBN]).draw();

$("#addBookModal").find('input').val('')

}

} else {

alert('请输入内容')

}

})

$("#addBooksInfo").click();

$("#btn_add").click(function(){

console.log('add');

$("#addBook").modal()

});

// 编辑图书

$('#btn_edit').click(function () {

console.log('edit');

if (table.rows('.selected').data().length) {

$("#editBookInfo").modal()

var rowData = table.rows('.selected').data()[0];

var inputs = $("#editBookModal").find('input')

for (var i = 0; i < inputs.length; i++) {

$(inputs[i]).val(rowData[i + 1])

}

} else {

alert('请选择项目');

}

});

// 保存编辑

$("#saveEdit").click(function() {

var editBookName = $("#editBookName").val()

var editBookAuthor = $("#editBookAuthor").val()

var editBookPrice = $("#editBookPrice").val()

var editBookPublish = $("#editBookPublish").val()

var editBookISBN = $("#editBookISBN").val()

var newRowData = [].concat(editBookName, editBookAuthor, editBookPrice, editBookPublish, editBookISBN);

var tds = Array.prototype.slice.call($('.selected td'))

for (var i = 0; i < newRowData.length; i++) {

if (newRowData[i] !== '') {

tds[i + 1].innerHTML = newRowData[i];

} else {

alert(titles[i] + '内容不能为空')

}

}

})

// 取消保存

$("#cancelEdit").click(function() {

console.log('cancelAdd');

$("#editBookModal").find('input').val('')

})

// 删除项目

$('#btn_delete').click(function () {

if (table.rows('.selected').data().length) {

$("#deleteBook").modal()

} else {

alert('请选择项目');

}

});

// 删除

$('#delete').click(function () {

table.row('.selected').remove().draw(false);

});

})

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值