2015-06-25 74 views
-1

我有註冊用戶的2個步驟表單。如何使用javascript保存信息而不使用Cookie

現在我想讓用戶一次完成下一次第一步的第一步時不顯示。

TNQ

+3

退房localStorage的https://developer.mozilla.org/en- US/docs/Web/API/Window/localStorage –

+0

另請參閱:http://stackoverflow.com/questions/19867599/what-is-the-difference-between-localstorage-sessionstorage-session-and-cookie –

+0

FWIW:There是一個漂亮的JS插件,名爲[Basil.js](https://github.com/Wisembly/basil.js/tree/master),它允許您存儲持久數據。它將根據用戶的瀏覽器功能將其存儲在cookie,sessionStorage或localStorage中。而且它很容易使用。 – blex

回答

-2

您可以使用一個隱藏的輸入字段(tutorial on input fields)或隱藏的標籤或數據屬性(tutorial on data attributes)。

示例代碼:

var id = 1; // the ID I want to keep among steps 
$("#myHiddenField").val(id); 
... 
// at step 2, for example 
var idStep1 = $("#myHiddenField").val(); 

這些值將存儲在HTML所以如果刷新頁面,你會丟失數據。如果您想在刷新後保留它並且您不想使用cookie,則可以將這些值保存在URL中(您可以在tutorial on url hash中閱讀更多關於此的信息)。散列對URL

實施例:

  1. 步驟1:www.mysite.com
  2. 點擊下一步步驟1.
  3. a)步驟1是不再可見。

    b)第2步是可見的。

    c)中的URL被更新時,附加的額外信息等的ID(www.mysite.com#第二步?ID = 1)

+0

你能給我一個示例代碼? – unbl0ck3r

+3

@ unbl0ck3r爲了防止您不知道這一點,這種方法將數據存儲在HTML中,但是如果頁面被重新加載/更改,那麼這些信息將會丟失(這與使用簡單變量等效並且不太方便) )。如果您想要持久信息,請使用localStorage。 – blex

+0

localStorage取決於HMLT5,您不知道目標用戶。您可以將HTML隱藏輸入字段或數據屬性與URL參數組合在一起。 –