我正在尝试在我的 jqTouch 网络应用程序中使用 javascript 表单,但是当我单击“提交”按钮时,它什么也不做,并且 Chrome 会弹出以下内容:“糟糕!错误无法准备语句(1 附近”当“语法错误)(代码 5)”
我的 HTML:
<div id="createEntry">
<div class="toolbar">
<h1>New Entry</h1>
<a class="button cancel" href="#">Cancel</a>
</div>
<form method="post">
<ul class="rounded">
<li><input type="text" placeholder="What" name="what" id="what"></li>
<li><input type="text" placeholder="When" name="when" id="when"></li>
<li><input type="text" placeholder="Comments" name="comments" id="comments"></li>
<li><input type="submit" class="submit" name="action" value="Save Entry"></li>
</ul>
</form>
</div>
这是我的javascript:
var jQT= $.jQTouch({
icon:'kilo.png'
});
var db;
$(document).ready(function(){
$('#createEntry form').submit(createEntry);
});
var shortName = 'AstronomersAid';
var version = '1.1';
var displayName = 'AstronomersAid';
var maxSize = 65536;
db = openDatabase(shortName, version, displayName, maxSize);
// database upgrade function as described on page 133.
if (db.version == '1.0') {
db.changeVersion('1.0', version,
function(transaction) {
transaction.executeSql(
'ALTER TABLE entries ' +
' ADD COLUMN longitude TEXT');
transaction.executeSql(
'ALTER TABLE entries ' +
' ADD COLUMN latitude TEXT');
},
function(e) {
alert('DB upgrade error: ' + e.message);
}
);
} else if (db.version == '') {
db.changeVersion('', version);
} // end database upgrade.
function refreshEntries() {
var currentDate = sessionStorage.currentDate;
$('#passport h1').text(currentDate);
$('#passport ul li:gt(0)').remove();
db.transaction( function(transaction)
{
transaction.executeSql(
'SELECT * FROM entries WHERE date = ? ORDER BY food;',
[currentDate], function (transaction, result)
{ for (var i=0; i < result.rows.length; i++)
{
var row = result.rows.item(i);
var newEntryRow = $('#entryTemplate').clone();
newEntryRow.removeAttr('id');
newEntryRow.removeAttr('style');
newEntryRow.data('entryId', row.id);
newEntryRow.appendTo('#passport ul');
newEntryRow.find('.label').text(row.what);
newEntryRow.find('.when').text(row.when);
newEntryRow.find('.delete').click(function(e) {
var clickedEntry = $(this).parent();
var clickedEntryId = clickedEntry.data('entryId');
deleteEntryById(clickedEntryId);
clickedEntry.slideUp();
e.stopPropogation();
});
newEntryRow.click(entryClickHandler);
}
}, errorHandler
);
}
);
} // end refreshEntries function.
function entryClickHandler(e){
sessionStorage.entryId = $(this).data('entryId');
db.transaction(
function(transaction) {
transaction.executeSql(
'SELECT * FROM entries WHERE id = ?;',
[sessionStorage.entryId],
function (transaction, result) {
var row = result.rows.item(0);
var what = row.what;
var when = row.when;
var comments = row.comments;
$('#inspectEntry input[name="what"]').val(what);
$('#inspectEntry input[name="when"]').val(when);
$('#inspectEntry input[name="comments"]').val(comments);
jQT.goTo('#inspectEntry', 'slideup');
},
errorHandler
);
}
);
} // end entryClickHandler
function createEntry() {
var what = $('#what').val();
var when = $('#when').val();
var comments = $('comments').val();
db.transaction(
function(transaction) {
transaction.executeSql(
'INSERT INTO entries (what, when, comments)
VALUES (?, ?, ?, ?);',
[what, when, comments],
function(){
refreshEntries();
jQT.goBack();
},
errorHandler
);
}
);
return false;
}
function insertEntry(latitude, longitude) {
var what = $('#what').val();
var when = $('#when').val();
var comments = $('#comments').val();
db.transaction(
function(transaction) {
transaction.executeSql(
'INSERT INTO entries (what, when, comments) ' +
'VALUES (?, ?, ?);',
[what, when, comments],
function(){
refreshEntries();
checkBudget();
jQT.goBack();
},
errorHandler
);
}
);
} // end insertEntry function.
function errorHandler(transaction, error) {
alert('Oops! Error was ' + error.message + ' (Code ' + error.code + ')' );
return true;
} // end errorHandler
function deleteEntryById(id){
db.transaction( function(transaction) {
transaction.executeSql(
'DELETE FROM entries WHERE id=?;', [id], null, errorHandler);
}
);
} // end deleteEntryById function.
有人可以帮我吗?在过去的三天里,我一直在尝试不同的东西,但没有任何效果。