2015-10-14 124 views
0

所以我試圖開始做一個使用本地存儲的html5 + jQuery的列表,但由於一些奇怪的原因,我無法讓jQuery製作本地存儲鍵。使用jQuery從輸入值設置本地存儲密鑰

這是我的代碼。我希望它收集輸入框的值,將其添加到本地存儲,然後打印名爲div的代碼。

$('#taskEntryForm').submit(function() { 

    if ($('#taskInput').val() !== '') { 

     var input_value = $('#taskInput').val(); 
     var stored_input = this.localStorage.setItem('task_',input_value); 
     var task = this.localStorage.getItem('task_'); 
     $('#taskList').append("<br>"+task); 


    }; 

    return false; 

}); 

,然後將HTML ...

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
<script src="shit.js"></script> 
</head> 
<div id="cNew"> 
<form id="taskEntryForm"> 
<input id="taskInput" name="taskInput" autofocus></form> 
</div> 
<div id="taskList"></div> 
</html> 

回答

2

在你的代碼this代表形式。本地存儲對象不是表單的一部分,它是window的一部分。你應該改變this(表示形式)window,或根本去除this(因爲window.localStorage是相同的,只是localStorage):

$('#taskEntryForm').submit(function() { 
    if ($('#taskInput').val() !== '') { 
     var input_value = $('#taskInput').val(); 
     var stored_input = localStorage.setItem('task_',input_value); // <- removed 'this' 
     var task = localStorage.getItem('task_'); // <- removed 'this' 
     $('#taskList').append("<br>"+task); 
    }; 
    return false; 
}); 

這裏是一個工作jsFiddle