handsontable-修改后自动异步提交数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="handsontable-master/dist/handsontable.full.js"></script>
    <script src="axios.min.js"></script>
    <script src="jquery-1.10.2.min.js"></script>
    <script src="samples.js"></script>
    <link rel="stylesheet" media="screen" href="handsontable-master/dist/handsontable.full.css">
    <link rel="stylesheet" type="text/css" href="https://handsontable.com/static/css/main.css">
</head>
<body>
<div data-jsfiddle="example1" class="ajax-container">
    <div class="controls">
        <button name="load" id="load" class="intext-btn">Load</button>
        <button name="save" id="save" class="intext-btn">Save</button>
        <label><input type="checkbox" name="autosave" id="autosave" checked="checked" autocomplete="off">Autosave</label>
    </div>
    <pre id="example1console" class="console">Click "Load" to load data from server</pre>
    <div id="example1" class="hot handsontable htRowHeaders htColumnHeaders"></div>
</div>
</body>
<script>
    var $$ = function (id) {
                return document.getElementById(id);
            },
            container = $$('example1'),
            exampleConsole = $$('example1console'),
            autosave = $$('autosave'),
            load = $$('load'),
            save = $$('save'),
            autosaveNotification,
            hot;

    hot = new Handsontable(container, {
        cell: [
            {row: 0, col: 0, readOnly: true}
        ],
        startRows: 8,
        startCols: 6,
        rowHeaders: true,
        colHeaders: true,
        persistentState:true,
        afterChange: function (change, source) { //这里就是异步提交的地方
            if (source === 'loadData') {
                return; //don't save this change
            }
            if (!autosave.checked) {
                return;
            }
            clearTimeout(autosaveNotification);
            ajax('scripts/json/save.json', 'GET', JSON.stringify({data: change}), function (data) {
                return false;
                exampleConsole.innerText = 'Autosaved (' + change.length + ' ' + 'cell' + (change.length > 1 ? 's' : '') + ')';
                autosaveNotification = setTimeout(function () {
                    exampleConsole.innerText = 'Changes will be autosaved';
                }, 1000);
            });
        }
    });

    Handsontable.dom.addEvent(load, 'click', function () {
        ajax('scripts/json/load.json', 'GET', '', function (res) {
            var data = JSON.parse(res.response);

            hot.loadData(data.data);
            exampleConsole.innerText = 'Data loaded';
        });
    });

    Handsontable.dom.addEvent(save, 'click', function () {
        // save all cell's data
        ajax('scripts/json/save.json', 'GET', JSON.stringify({data: hot.getData()}), function (res) {
            var response = JSON.parse(res.response);

            if (response.result === 'ok') {
                exampleConsole.innerText = 'Data saved';
            }
            else {
                exampleConsole.innerText = 'Save error';
            }
        });
    });

    Handsontable.dom.addEvent(autosave, 'click', function () {
        if (autosave.checked) {
            exampleConsole.innerText = 'Changes will be autosaved';
        }
        else {
            exampleConsole.innerText = 'Changes will not be autosaved';
        }
    });
</script>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值