问题描述
我有一个页面,显示了indexedDB的列表,然后我想在此页面上对其进行编辑,但我无法获得连接数据的ID,请帮帮我! index.html
<div id="two">
<form>
<input id="filterTable-input" data-type="search">
</form>
<table data-role="table" data-filter="true" data-input="#filterTable-input" class="ui-responsive">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Date/Time</th>
<th>Average meal</th>
<th>Service</th>
<th>Cleanliness</th>
<th>Food quality</th>
<th>Average Rating</th>
<th>Reporter</th>
<th>Note</th>
<th>Action</th>
</tr>
</thead>
<tbody id="ratingContent" class="ratingContent">
</tbody>
</table>
</div>
index.js 加载数据功能
function refreshTable() {
var objectStore = db.transaction("rating").objectStore("rating");
objectStore.openCursor().onsuccess = function(event) {
var cursor = event.target.result;
if (cursor) {
var name = cursor.value.name;
var type = cursor.value.type;
var date = cursor.value.date;
var average = cursor.value.average;
var service = cursor.value.service;
var cleanliness = cursor.value.cleanliness;
var food = cursor.value.food;
var reporter = cursor.value.reporter;
var keyPath = cursor.value.id;
var note = cursor.value.note;
var rating = cursor.value.ratingAverage;
var markup = "<tr id='report_"+keyPath+"'><td data-field='name' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ name + "</span></td><td data-field='type' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ type + "</span></td><td data-field='date' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ date + "</span></td><td data-field='average' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ average + "</span></td><td data-field='service' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ service + "</span></td><td data-field='cleanliness' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ cleanliness +"</span></td><td data-field='food' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ food +"</span></td><td data-field='reporter' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ rating +"</span></td><td data-field='reporter' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ reporter +"</span></td><td data-field='note' data-id='"+keyPath+"'><span class='current ratingFeild' contenteditable>"
+ note+ "</span></td><td><input type='button' name='record' id='record' value='Delete' onclick='deleteData("+ keyPath +")'></td></tr>";
$("table tbody").append(markup);
cursor.continue();//go to next record
}
};
}
编辑数据功能 console.log('hhhh'+键)已定义。也许是这样,它有错误:js:200 Uncaught DOMException:无法在“ IDBObjectStore”上执行“ get”:没有指定键或键范围。
$('#ratingContent').on('blur','.ratingFeild',function(){
var newData = $(this).html();
var field = $(this).data('field');
var key = $(this).data('id');
console.log('hhhh'+ key);
var transaction = db.transaction(['rating'],"readwrite");
var store = transaction.objectStore("rating");
var request= store.get(key);
request.onsuccess = function() {
var data = request.result;
console.log(data)
if(field == 'name') {
data.name = newData;
} else if(field == 'type'){
data.type = newData;
}else if(field == 'date'){
data.date = newData;
}else if(field == 'average'){
data.average = newData;
}else if(field == 'service'){
data.service = newData;
}else if(field == 'cleanliness'){
data.cleanliness = newData;
}else if(field == 'food'){
data.food = newData;
}else if(field == 'reporter'){
data.reporter = newData;
}else if(field == 'note'){
data.note = newData;
}
var requestUpdate = store.put(data);
requestUpdate.onsuccess = function() {
alert('Update successfull!');
}
requestUpdate.error = function() {
alert('Error!');
}
}
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)