2012-10-12 144 views
5

我已經通過以下鏈接,我的情況是相同的。控制硬件後退按鈕jquery mobile

Disable hardware back function jquery mobile

情況:被測設備:三星S3

網頁A:用的ListView名稱(A1,A2,A3) 網頁B:家道形式的,提交和取消按鈕。

用戶填寫表單並點擊提交按鈕。他的數據被上傳到服務器。頁面被更新並顯示確認對話框,數據被上傳到服務器。

現在問題到來。

現在,當用戶點擊硬件後退按鈕時,他又被重定向到頁面B,他又能夠提交表單(我們不需要,因爲表單只能填充一次)。

那麼,有沒有辦法通過它我可以控制硬件後退按鈕,顯示一個頁面時,它是網頁B

從尼爾默爾以下的答案似乎有了答案,但我不知道該怎麼實施它 -

有沒有真正的方法禁用黑莓或Android的 硬件後退按鈕。

你可以做的是維護一個會話變量,它將在你的後臺處理程序中失效 ,並檢查考試頁面的 pagebeforeshow事件中的會話變量。

有人能幫我一把。

回答

1

你應該能夠用javascript捕獲硬件後退按鈕點擊事件。

$(document).bind('keydown', function(event) { 
    if (event.keyCode == 27) { 
    // Prevent default (disable the back button behavior) 
    event.preventDefault(); 

    // Your code to show another page or whatever... 
    } 
}); 
+0

我正在使用三星Galaxy S3手機,我猜這是用於鍵盤的 – user1551578

+0

我已經用三星GT-S5570(沒有鍵盤)測試過它並且可以正常工作。 – Pablo

+0

嗨,我仍然有問題,你能告訴我,我應該在我的代碼中的代碼屁股在哪裏。 – user1551578

2

使用cookie。無論何時處理表單,都會向用戶的Cookie添加值,並在表單頁面上檢查該cookie值是否存在。如果它只是向用戶顯示一條消息,表明數據已經提交或者將用戶重定向到主頁面。

1

我所做的是將包含登錄表單和用戶在登錄後指向的頁面放在與兩頁(多頁面容器)相同的html文件中。驗證登錄後,我將changePage調用到我想要加載的新頁面的id。changeHash as false。 這樣用戶即使通過硬件後退按鈕也不會返回到登錄。