我有一个带有几个按钮的rails表单。当用户单击某些按钮时,我记得隐藏表单字段中的更改。
表单提交到服务器并重新加载后(如果表单中发生某些错误),隐藏字段将被重置。我不能保留被点击的东西。下面是试图保存已单击的内容的代码
<div class="btn-group col-sm-12">
<button type="button" class="btn btn-default col-sm-6 active" id="user">I am user</button>
<button type="button" class="btn btn-default col-sm-6" id="admin"> I am an admin</button>
</div>
<input id="profile_user" name="profile[user]" type="hidden" value="false" />
<input id="profile_admin" name="profile[admin]" type="hidden" value="false" />
function show_user(){
$("#user").addClass("active");
$("#admin").removeClass("active");
$("#profile_user").val("true");
$("#profile_admin").val("false");
}
function show_admin(){
$("#admin").addClass("active");
$("#user").removeClass("active");
$("#profile_user").val("false");
$("#profile_admin").val("true");
}
$(function(){
console.log("reload");
console.log($("#profile_user").val());
if($("#profile_admin").val() == "true"){
show_admin();
}else{
show_user();
}
$('#user').click(function() {
show_user();
});
$('#admin').click(function() {
show_admin();
});
});或者,有什么更好的方法可以通过服务器推送和重调来保持rails形式的javascript更改呢?
发布于 2013-12-16 21:57:32
您可以将其保存在localStorage中,并检查它是否已填充文档开始。以这种方式保存数据:
localStorage.setItem('myValue',myValue)因此,首先,在加载页面时,检查localStorage是否为空:
if (localStorage.length != 0){
$('#yourField').val(localStorage.myValue);
}else{
localStorage.setItem('myValue',myValue);
}https://stackoverflow.com/questions/20621629
复制相似问题