2014-04-27 3 views
1

jqTouch 웹 앱에서 자바 스크립트 양식을 사용하려하지만 '제출'버튼을 클릭하면 , 그것은 아무것도하지 않으며, 크롬이 함께 팝업 : "("구문 오류 (코드 5)"구문 오류 (코드 오류 5 일 때)"(근처에 1 개) 문을 준비 할 수 없습니다. "

내 HTML 아차 오류가 문 1 근처) "준비 할 수 있었다!"

<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> 

여기 내 자바 스크립트입니다 :

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. 

아무도 나를 도와 줄 수 있습니까? 나는 지난 3 일 동안 다른 일을 시도해 왔지만 아무 것도 효과가 없었다.

답변

1

var when = $('#when').val(); "when"은 예약어입니다. 다른 변수 이름을 사용하십시오.

+0

좋아요, 그랬습니다 .... 이제는 "그런 테이블이 없다"고 말하고 있습니다 ... 데이터베이스를 지울 필요가 있다고 생각합니까? 그래도 어떻게해야할지 모르겠다. – user3502665

+0

아니요, 당신은 DB를 지울 필요가 없습니다. sql 쿼리에서 적절한 테이블 이름을 확인해야합니다. 실제로 "언제"는 mysql의 예약어이기도합니다. SQL 쿼리에서 아포스트로피를 사용하여 이들을 모두 래핑해야합니다. –

관련 문제