页面重新加载后停止自动触发单击

时间:2015-10-02 16:15:30

标签: javascript jquery html

我有代码填写输入字段,然后在特定div中存在特定文本时触发表单中提交按钮的点击,以便在提交时刷新页面。

我在同一表单中也有链接,如果点击它会删除之前填充的输入值并提交表单。由于它提交了表单,它会触发页面刷新,从而导致执行填充输入字段的第一个事件,并再次触发提交按钮的点击。

如果用户点击链接,我想停止自动触发该点击。

也许代码解释得更好......

JS:

$(document).ready(function () {
    $("#link").click(function () {
        sessionStorage.reloadAfterPageLoad = true;
        window.location.reload();
    });

    $(function () {
        if (sessionStorage.reloadAfterPageLoad) {
            //Some code that I don't know to prevent executing the below code after page refresh if #link was clicked by user.
            alert("Link Clicked");
            sessionStorage.reloadAfterPageLoad = false;
        }
    });

    if (document.getElementById('divid').innerHTML.indexOf("Sampletext") != -1) {
        document.getElementById('inputid').value = 'example';
        $("#button").trigger('click');
    }
});

HTML:

<div id="divid">Sampletext</div>
<input type="text" id="inputid" /> 
<input type="submit" id="button" value="Enter" />
<a href="?p=dothis" id="link">Do This</a>

非常感谢答案。

2 个答案:

答案 0 :(得分:0)

您似乎正在设置reloadAfterPageLoad标志,但之后您无法使用它做任何有意义的

尝试用这样的代码替换代码的底部;

if (document.getElementById('divid').innerHTML.indexOf("Sampletext") != -1 && sessionStorage.reloadAfterPageReload == true) {
     document.getElementById('inputid').value = 'example';
     $("#button").trigger('click');
   }
});

答案 1 :(得分:0)

If you set an item in local storage that you use to determine if the click has been triggered, you could use that to determine if it should trigger after reload. local storage persist between page request.

>>> res = a * np.sin(jj * x[:, None])
>>> res.shape
(3, 10)
>>> res.sum(axis=1)
array([ 0.01230993,  0.0613201 ,  0.17154859])