次のスニペットを送信ボタンにバインドしています
var formData = $(this).serialize();
console.log(formData);
$.ajax({
url: 'event_crud.php',
type: "POST",
dataType: 'text',
data: formData,
success: function(data) {
$.mobile.changePage($("#events"));
console.log("Data: "+data+"\n Rebuild the list");
update(fromDate, toDate, eventList);
$("ul#event-list").listview("refresh");
},
error: function(data) {
alert("Whoops! Update event failed! "+data);
}
});
送信されたフォームのテキスト フィールドに閉じ括弧 (つまり ")" が含まれていると、js コンソールにエラーが表示されます。注: 左括弧の例外は発生しません。テキスト フィールドに ) が表示されます (最後にある必要はありません)。
シリアル化されたフォーム データの例を次に示します。
action=update&eventID=416&type=expense&description=Shopping+)&date=2013-10-17&value=350.0000
そして、ここにエラーがあります
Uncaught Error: Syntax error, unrecognized expression: ]&date=2013-10-17&value=350.0000')
閉じ括弧は角括弧としてシリアル化されていることに注意してください。FWIW、エラー参照は jquery-1.7.1.min.js:3 です
私もこのように入力をエンコードしようとしました
formData = encodeURIComponent(formData);
成功せずに。
不思議なことに、AJAX POST は正常に完了したように見えます (db が更新されます) が、changePage アクションは実行されません。