在页面加载之间保留变量

在页面加载之间保留变量

我正在尝试捕获我的表单的提交按钮按下,如果表单已提交,页面刷新,我会显示一些隐藏的字段。我想捕获表单是否已经提交之前,如果它是在重新加载时提交的,我想取消隐藏隐藏的字段。我试图使用全局变量来实现这一点,但是我无法使其正常工作。

这是我尝试过的:

  var clicked = false;

  $(document).ready(function() {

    $("input[type='submit'][value='Search']").attr("onclick", "form.act.value='detailSearch'; clicked = true;  return true;");

    if (clicked == true) {
      // show hidden fields
    } else {
      // don't show hidden fields
    }
  });

有关此代码有什么问题的任何建议吗?


慕容3067478
浏览 679回答 3
3回答

一只斗牛犬

尝试利用$.holdReady(),history<script&nbsp;src="jquery.js"&nbsp;type="text/javascript"></script></head><body><form&nbsp;method="POST"> &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="text"&nbsp;name="name"&nbsp;value=""&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="submit"&nbsp;value="Search"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="hidden"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<input&nbsp;type="hidden"&nbsp;/></form><script&nbsp;type="text/javascript">function&nbsp;show()&nbsp;{ &nbsp;&nbsp;return&nbsp;$("form&nbsp;input[type=hidden]") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.replaceWith(function(i,&nbsp;el)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;"<input&nbsp;type=text>" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});}$.holdReady(true); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(history.state&nbsp;!==&nbsp;null&nbsp;&&&nbsp;history.state.clicked&nbsp;===&nbsp;true)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;show&nbsp;hidden&nbsp;fields &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;if&nbsp;`history.state.clicked&nbsp;===&nbsp;true`&nbsp;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;replace&nbsp;`input&nbsp;type=hidden`&nbsp;with&nbsp;`input&nbsp;type=text` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(history); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;show&nbsp;hidden&nbsp;fields &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(history); &nbsp;&nbsp;&nbsp;&nbsp;}$.holdReady(false); &nbsp;&nbsp;$(document).ready(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$("input[type=submit][value=Search]") &nbsp;&nbsp;&nbsp;&nbsp;.on("click",&nbsp;function(e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.preventDefault(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(history.state&nbsp;===&nbsp;null)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;stuff &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;history.pushState({"clicked":true}); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;replace&nbsp;`input&nbsp;type=hidden`&nbsp;with&nbsp;`input&nbsp;type=text` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(history); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;do&nbsp;other&nbsp;stuff &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;});</script></body>

慕工程0101907

使用localeStorage或sessionStorage似乎是最好的选择。将clicked变量保存在globle&nbsp;范围内的Intead以这种方式存储它:if(localeStorage.getItem("clicked")&nbsp;===&nbsp;null) &nbsp;&nbsp;&nbsp;&nbsp;localeStorage.setItem("clicked",&nbsp;"FALSE");&nbsp;//&nbsp;for&nbsp;the&nbsp;first&nbsp;time$(document).ready(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$("input[type='submit'][value='Search']").attr("onclick",&nbsp;"form.act.value='detailSearch';return&nbsp;true;"); &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;clicked&nbsp;=&nbsp;localeStorage.getItem("clicked")&nbsp;==&nbsp;"FALSE"&nbsp;?&nbsp;"TRUE"&nbsp;:&nbsp;"FALSE"; &nbsp;&nbsp;&nbsp;&nbsp;localeStorage.setItem("clicked",&nbsp;clicked); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(clicked&nbsp;==&nbsp;"TRUE")&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;show&nbsp;hidden&nbsp;fields &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;don't&nbsp;show&nbsp;hidden&nbsp;fields &nbsp;&nbsp;&nbsp;&nbsp;}});
打开App,查看更多内容
随时随地看视频慕课网APP