javascript - 尝试在重新加载时存储单选按钮选择
问题描述
我正在尝试使用 Jquery 和本地存储在 html 页面上的用户投票(是或否)上存储单选按钮选择,但它不起作用,只是在刷新时恢复为无选择。
HTML
<label><input type="radio" name="selector" value="Yes">Yes</label><br>
<label><input type="radio" name="selector" value="No">No</label>
查询
$(document).ready(function() {
$(function() {
$("input[type=radio]").on('click', function(){
localStorage.setItem("pollselected", value);
});
var storedValue = localStorage.getItem("pollselected");
if (storedValue !== null) {
$("input[value=\""+storedValue+"\"]").click();
}
});
});
解决方案
$(this)
是您短期内需要的。您需要一种方法来识别单击了哪些单选按钮。我添加了id="yes"
和id="no"
。为了使它不在存储object
中存储 an,而是将 yes 或 no 作为选择存储。然后我们可以抓住是或否单选按钮。我为你在本地测试了这个例子。
示例:本地存储被阻止
function test(){
var test = 'test';
try {
localStorage.setItem(test, test);
localStorage.removeItem(test);
return true;
} catch(e) {
return false;
}
}
$(document).ready(function() {
if (test() === true) { // Available
$(function() {
$("input[type=radio]").on('click', function() {
let choice = $(this).attr('id'); // Get this id
localStorage.setItem("pollselected", choice); // Store
});
var storedValue = localStorage.getItem("pollselected");
if (storedValue !== null) {
console.log(storedValue) // yes or no
$("#" + storedValue).click(); // We could make this simpiler if we stored #yes or #no
}
});
} else {
alert('No local storage')
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input type="radio" name="selector" id="no" value="Yes">Yes</label><br>
<label><input type="radio" name="selector" id="yes" value="No">No</label>
推荐阅读
- framemaker - “过滤器遇到错误,无法完成翻译”是什么意思?
- reactjs - 视频无法在 React 中的移动设备上播放
- android - 如何使用云函数在 FCM 中正确指定 channel_id
- reactjs - Electron React 应用程序白屏 + 在构建中断开了开发工具但在开发中很好?
- spring-data-jpa - JPA 映射 OneToMany 与部分嵌入的 id 孩子
- python - PyInstaller 未处理的异常
- web-scraping - r.html.find 仅获得 1 项而不是全部
- loops - 无限循环VS。溢出的循环?
- python-3.x - 将avi转换为mp4时出现ffmpeg查找错误
- python - 为什么仅在运行 pytest 时主源文件中出现导入错误?