【问题标题】:How can i execute a function after a form submission causes a page refresh?表单提交导致页面刷新后如何执行功能?
【发布时间】:2021-04-23 01:52:49
【问题描述】:

我正在使用 shopify 内置的客户创建、登录、重置表单提交,提交时会强制页面刷新。我的意图是显示一条消息,该消息在通过按钮单击功能刷新页面后显示。这就是我到目前为止所拥有的;该消息会一直显示,直到该页面刷新,然后如您所愿地删除活动类。

$(document).ready(function () {
  class Alert {
    constructor() {
      this.customerAlert = document.createElement('div');
    }
    init(){
      this.customerAlert.classList.add('customer-alert');
      document.querySelector('body').append(this.customerAlert);
    }
    show(message){
      this.customerAlert.textContent = message;
        this.customerAlert.classList.add('active');
      setTimeout(() => {
        this.customerAlert.classList.remove('active');
      }, 8000);
    }
  }

  //create snackbar and initiate
  const alertMessage = new Alert();
  alertMessage.init();

  const createAccountButton = document.querySelector('input.account-trigger');

  createAccountButton.addEventListener('click', () => {
    alertMessage.show('Your account in now under review');
  });
});

【问题讨论】:

    标签: javascript jquery shopify


    【解决方案1】:

    在提交之前在会话存储中设置一个布尔变量来表示两种状态,然后在刷新后将其读入。

    类似这样的:

    function HandleFlag(){
    
    var F=sessionStorage.getItem('Flag');
    
    if(F=='1'){
    
     // display your message box here
    
     sessionStorage.setItem('Flag','0');
    
    } else {
    
     // the state is "0" so toggle it just before submitting
    
       sessionStorage.setItem('Flag','1');
     }
    
    }
    

    我希望你明白我的意思。

    【讨论】:

      猜你喜欢
      • 2020-06-27
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 2013-09-21
      • 1970-01-01
      相关资源
      最近更新 更多