我正在將我的頭撞到一堵磚牆上。我的猜測是,這是首先出現的問題,但我似乎無法弄清楚發生這種情況的順序。輸入提交按鈕由於排序而丟失值
基本場景: 這是一個PhoneGap應用程序(但這是一個特別的JavaScript問題)。一個index.html文件和一個.js文件,用於向運行到數據庫的PHP文件發送ajax調用,並返回要在應用程序中使用的信息。
jQuery和jQuery Mobile的都被使用,也使的index.html被分解成,我可以回去之間來回頁面元素(這可能是相關的)
到目前爲止好。登錄後,用戶轉到一個頁面,在該頁面中運行設置的間隔函數,該函數使用ajax查詢php,然後數據庫獲取答案並將其發送回鏈並導致一個操作。
其中一個動作是「天啊有一個新的問題,我將設置所有變量到本地存儲,然後通過改變頁面:
$.mobile.changePage("#pageX", {transition:"slide", changeHash:false});
現在我有一個運行。對一個函數(「pagebeforeshow」:
$(function() {
$(document).on("pagebeforeshow", "#pageX", function() {
document.getElementById("username").innerHTML = window.localStorage.getItem("username");
document.getElementById("score").innerHTML = window.localStorage.getItem("score");
document.getElementById("category").innerHTML = window.localStorage.getItem("category");
document.getElementById("mob_question_question").innerHTML = window.localStorage.getItem("mob_question_question");
return false;
});
});
這一切工作一種享受
現在的有點棘手我在含輸入類型=「提交」每一個html的四種形式:
<form id="question1"><input id="answer1" type="submit" value="" data-transition="slide" data-theme="a"></form>
<form id="question2"><input id="answer2" type="submit" value="" data-transition="slide" data-theme="a"></form>
<form id="question3"><input id="answer3" type="submit" value="" data-transition="slide" data-theme="a"></form>
<form id="question4"><input id="answer4" type="submit" value="" data-transition="slide" data-theme="a"></form>
這就是背景,現在是問題。我正在尋找設置按鈕的值在ajax調用發送的答案(我已檢查,以確保正確的信息正在發送)
我似乎無法實現JavaScript中的任何JavaScript pagebeforeshow函數,因爲它不會填充按鈕,但設法弄清楚我需要將HTML放在html中的按鈕之後。我還包括了我用來隨機確定每個人的答案的JavaScript。
<script>
var answers = [window.localStorage.getItem("correct"), window.localStorage.getItem("wrong1"), window.localStorage.getItem("wrong2"), window.localStorage.getItem("wrong3")];
var index = Math.floor(Math.random() * answers.length);
var answer1 = answers[index];
answers.splice(index, 1);
index = Math.floor(Math.random() * answers.length);
var answer2 = answers[index];
answers.splice(index, 1);
index = Math.floor(Math.random() * answers.length);
var answer3 = answers[index];
answers.splice(index, 1);
index = Math.floor(Math.random() * answers.length);
var answer4 = answers[index];
answers.splice(index, 1);
window.localStorage.setItem("answer1", answer1);
window.localStorage.setItem("answer2", answer2);
window.localStorage.setItem("answer3", answer3);
window.localStorage.setItem("answer4", answer4);
document.getElementById("answer1").value = window.localStorage.getItem("answer1");
document.getElementById("answer2").value = window.localStorage.getItem("answer2");
document.getElementById("answer3").value = window.localStorage.getItem("answer3");
document.getElementById("answer4").value = window.localStorage.getItem("answer4");
</script>
畢竟是正在發生的事情是整個事情正在與不同之處在於,當按鈕拿出他們拿出在localStorage的答案,最後加載的版本,並會留全部通過問題(即問題的變化,但答案是一樣的)。
就像我在開始時所說的,我猜這是爲了加載錯誤順序的提交按鈕的值,或者在第一次運行後錯過了這個JavaScript。任何關於如何解決這個問題的建議都將受到熱烈的讚賞。
這是幾乎沒有,我被搞亂了我的使用活動,並在那裏我可以把腳本標記,並有localStorage的刷新。長話短說,我經歷了組合後的組合,直到它的工作。但謝謝你的刷新提示。 – ashcanschool