简体   繁体   English

页面刷新后如何保持按钮处于活动状态?

[英]How to keep the button active after page refresh?

I have two buttons that show and hide inputs when one of them selected.我有两个按钮,其中显示它们的一个选择并隐藏输入。 If the form is submitted when the oneway button is selected, the form reloads with an active return button.如果在选择单向按钮时提交表单,则表单将重新加载一个活动的返回按钮。 How do i get the active label(button) to still be active after the page reload/refresh?如何在页面重新加载/刷新后使活动标签(按钮)仍然处于活动状态?

 $(document).ready(function() { $("label[name='oneway']").on("click", function() { $(".arrival").hide(); $(".from").removeClass('col-lg-3'); $(".from").addClass('col-lg-4'); $(".to").removeClass('col-lg-3'); $(".to").addClass('col-lg-4'); $(".departure").removeClass('col-lg-3'); $(".departure").addClass('col-lg-4'); $("label[name='return']").removeClass('active'); $(this).addClass('active'); $('#trip').val('0'); }); $("label[name='return']").on("click", function() { $(".arrival").show(); $(".from").removeClass('col-lg-4'); $(".from").addClass('col-lg-3'); $(".to").removeClass('col-lg-4'); $(".to").addClass('col-lg-3'); $(".departure").removeClass('col-lg-4'); $(".departure").addClass('col-lg-3'); $("label[name='oneway']").removeClass('active'); $(this).addClass('active'); $('#trip').val('1'); }); });
 <form method="post" action=""> <div class="btn-group btn-group-toggle" data-toggle="buttons"> <label for="oneway" class="btn btn-default " name="oneway">One way</label> <label for="return" class="btn btn-default active" name="return">Return</label> </div> <div class="form-row col-lg-12"> <div class="form-group col-lg-3 from"> <label for="From">From</label> <input type="text" class="form-control autocomplete" id="from" name="from" placeholder="Departure city" value=""> </div> <div class="form-group col-lg-3 to"> <label for="To">To</label> <input type="text" name="to" class="form-control autocomplete" id="to" placeholder="Arrival city" value=""> </div> <div class="form-group col-lg-3 departure"> <label for="DepartureDate">Departure Date</label> <div class="input-group date"> <span class="input-group-addon"><i class="fa fa-calendar"></i></span> <input id="date_added" type="text" name="dd" class="form-control" value=""> </div> </div> <div class="form-group col-lg-3 arrival"> <label for="ArrivalDate">Arrival Date</label> <div class="input-group date"> <span class="input-group-addon"><i class="fa fa-calendar"></i></span> <input id="date_modified" type="text" name="rd" class="form-control" value=""> </div> </div> <div class="form-row col-lg-12"> <button type="submit" name="confirm" class="btn btn-primary btn-lg " id="confirm">Confirm</button> </div> </div> </form>

You can save the state of the button throughout page reloads using sessionStorage or localStorage .您可以使用sessionStoragelocalStorage在整个页面重新加载过程中保存按钮的状态。


sessionStorage:会话存储:

The sessionStorage property accesses a session Storage object for the current origin. sessionStorage属性访问当前源的会话存储对象。 sessionStorage is similar to localStorage ; sessionStorage类似于localStorage the difference is that while data in localStorage doesn't expire, data in sessionStorage is cleared when the page session ends .不同的是, localStorage中的数据不会过期,而sessionStorage数据会在页面会话结束时清除

  • Opening a page in a new tab or window creates a new session with the value of the top-level browsing context, which differs from how session cookies work.新选项卡或窗口中打开页面会创建一个具有顶级浏览上下文值的新会话,这与会话 cookie 的工作方式不同。

More about sessionStorage here developer.mozilla.org/Window/sessionStorage更多关于sessionStorage在这里developer.mozilla.org/Window/sessionStorage


localStorage:本地存储:

The read-only localStorage property allows you to access a Storage object for the Document's origin;只读的localStorage属性允许您访问文档来源的 Storage 对象; the stored data is saved across browser sessions .存储的数据跨浏览器会话保存 localStorage is similar to sessionStorage , except that while data stored in localStorage has no expiration time , data stored in sessionStorage gets cleared when the page session ends — that is, when the page is closed. localStoragesessionStorage类似,不同之处在于虽然localStorage中存储的数据没有过期时间,但sessionStorage存储的数据会在页面会话结束时(即页面关闭时)被清除。

  • It should be noted that data stored in either localStorage or sessionStorage is specific to the protocol of the page .应该注意,存储在localStoragesessionStorage中的数据特定于页面的协议

  • The keys and the values are always strings (note that, as with objects, integer keys will be automatically converted to strings).键和值始终是字符串(请注意,与对象一样,整数键将自动转换为字符串)。

More on localStorage here: developer.mozilla.org/Window/localStorage有关localStorage更多信息,请访问: developer.mozilla.org/Window/localStorage


Here is the code example :这是代码示例

$("label[name='oneway']").on("click", function(){
    sessionStorage.setItem("btnActive", "oneway");
    ....
 });

$("label[name='return']").on("click", function(){
    sessionStorage.setItem("btnActive", "return");
});

let sessionState = sessionStorage.getItem("btnActive");

if( sessionState !== null ) {
    if( sessionState == "oneway" ) {
       ...
    } else {
       ...
    }
} else {
    ...
}

Or using localStorage :或使用localStorage

// set
localStorage.setItem("btnActive", "oneway");
// get
localStorage.getItem("btnActive");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM