[英]How do i combine checkbox values before sending to localstorage?
我想用空格分隔符將復選框的值存儲在localStorage中。 當我檢查A , B並按保存按鈕時,將其另存為
["A","B"]
如果我檢查A,B和C並按下按鈕,數組將變為
["A","B","A","B","C"]
我試圖獲得的輸出應該是
["A B","A B C"]
這是我的代碼:
<body>
<div class="container">
<input type="checkbox" class="checks" value="A"> A<br>
<input type="checkbox" class="checks" value="B"> B<br>
<input type="checkbox" class="checks" value="C"> C<br>
<br><br>
<a href="#" onclick="getValue();return false;">Get Value</a>
<script>
function getValue() {
var myArray = !!localStorage.getItem('str') ? JSON.parse(localStorage.getItem('str')): [];
var checks = document.querySelectorAll('.checks:checked');
if(!checks.length) return;
for (i = 0; i < checks.length; i++) {
myArray.push(checks[i].value);
}
localStorage.setItem('str',JSON.stringify(myArray));
console.log('str', myArray.join(' '));
}
</script>
</div>
</body>
在將陣列保存到本地存儲之前,您無需加入陣列。
將當前答案收集到一個新數組( myChecks
中為myChecks
)中,然后將其添加到myArray
然后再保存到localStorage
。
注意: stackoverflow的代碼段阻止了localStorage的使用。 我已經注釋了使用localStorage的行,並且在演示中使用了外部myArray
變量。 要在您的代碼中使用,請取消注釋讀取和寫入localStorage的行,並刪除var myArray = []
。
var myArray = []; // only for the demo function getValue() { var checks = document.querySelectorAll('.checks:checked'); var myChecks = []; if (!checks.length) return; for (i = 0; i < checks.length; i++) { myChecks.push(checks[i].value); } //var myArray = !!localStorage.getItem('str') ? JSON.parse(localStorage.getItem('str')) : []; myArray.push(myChecks.join(' ')); //localStorage.setItem('str', JSON.stringify(myArray)); console.log('str', JSON.stringify(myArray)); }
<div class="container"> <input type="checkbox" class="checks" value="A"> A<br> <input type="checkbox" class="checks" value="B"> B<br> <input type="checkbox" class="checks" value="C"> C<br> <br><br> <a href="#" onclick="getValue();return false;">Get Value</a> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.