코드를 Handsontable official documentation에서 JSFiddle으로 복사했습니다. 이것은 손댈 수 없다 0.34.5.Handsontable 자동 저장 - 아약스가 정의되지 않았습니다.
크롬 콘솔에 오류가 발생했습니다. "ajax가 정의되지 않았습니다." 다음과 같이
코드, handsontable.full.min.js 및 handsontable.full.min.css 사전은로드
HTML :
<div 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"></div>
</div>
스크립트 :
var
$$ = function(id) {
return document.getElementById(id);
},
container = $$('example1'),
exampleConsole = $$('example1console'),
autosave = $$('autosave'),
load = $$('load'),
save = $$('save'),
autosaveNotification,
hot;
hot = new Handsontable(container, {
startRows: 8,
startCols: 6,
rowHeaders: true,
colHeaders: 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) {
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';
}
});
* "아약스가 정의되지 않았습니다."* 분명하지 않은 점은 무엇입니까? 아마도 도움이 될 것입니다 : 당신이 사용하고있는'ajax' 함수는 * 정의되지 않았습니다 *. 적절한 AJAX 요청 유틸리티를 제공해야합니다. 너무 어려운 경우 : 구글 자바 스크립트 만들기 아약스 요청하십시오. 또는 더 간단하게 : devtools를 열고이 함수에 대한 30 줄의 코드를 복사하십시오. – dfsq
@dfsq 내가 추가 라이브러리를로드해야한다고 말하고 있습니까? 그렇다면 어떤 특정 도서관이 필요합니까? 공식 문서에는 아무 것도 필요 없다고 명시되어 있지 않습니다. –
라이브러리를로드 할 필요가 없습니다. 단지 웹 사이트에서 사용하는 내용을 복사하기 만하면 30 줄의 코드 일뿐입니다. 원한다면 다른 라이브러리를 사용할 수 있습니다. – dfsq