if (localStorage.vote) {
//user has already cast a vote, reflect this
document.querySelector(".form-row").querySelector("input[value='"+localStorage.vote+"']").setAttribute("checked", true);
//disable the submit
document.querySelector(".button-submit").setAttribute("disabled", true);
}
function setLocalStorageVote()
{
//call when user has cast the vote.
localStorage.vote = document.querySelector(".form-row").querySelector("input[type='radio']:checked").value;
}
document.querySelector(".button-submit").onclick = setLocalStorageVote; //using onclick here just for demonstrating purposes. Use addEventListener in production code!
<template name="addVote">
<div class="form-row choices">
<label><input type="radio" name="vote" value="Yes"><i></i><span>Yes</span></label>
<label><input type="radio" name="vote" value="No"><i></i><span>No</span></label>
<label><input type="radio" name="vote" value="Undecided"><i></i><span>Iâm Undecided</span></label>
</div>
<div class="form-row">
<button class="button-submit">Submit and view results</button>
</div>
</template>
应该这样做。只需存储
布尔型
并绕过代码以获得基于localStorage.vote值的结果。
localStorage
在投票的客户上无限期设置。请注意,我已经删除了Meteor代码,因为我不能在
不停摆弄
。这只是为了演示localStorage的工作原理。
http://jsfiddle.net/8fzur0h9/1/