Остановить выполнение jQuery после однократного выполнения - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть скрипт jQuery для выполнения автоматического запуска при загрузке страницы, и он выполняется неоднократно, я хочу сделать кнопку тигра, когда страница загружена

Javascript

$(document).ready(function () {

    $("[id*='sub']").click();

});

HTML-код

@using (Html.BeginForm("GenerateQR", "TRoom", FormMethod.Post))
{
    <input type="text" style="display:none;" name="HlId" value="@HttpContext.Current.Session["USERID"].ToString()" />
    <input id="sub" type="submit" style="display:none" value="Click Here To Generate QR Code" />
}

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 19 февраля 2019

наконец-то работает код

    window.onload = function () {

        if (localStorage.formSubmitted !== 'true')
        {
            localStorage.setItem("formSubmitted", "true");
            document.getElementById('sub').click();
        }
        else
        {
            localStorage.removeItem("formSubmitted");
        }
    }
</script>

спасибо всем за помощь

0 голосов
/ 19 февраля 2019

также я думаю, что лучше использовать сессию для той же цели window.onload = function () {

        if (sessionStorage.formSubmitted !== 'true')
        {
            sessionStorage.setItem("formSubmitted", "true");
            document.getElementById('sub').click();
        }
        else
        {
            sessionStorage.removeItem("formSubmitted");
        }
    }
</script>
0 голосов
/ 16 февраля 2019

jQuery .one() присоединяет обработчик, который запускается не более одного раза для каждого элемента на событие.Таким образом, вместо .click() вы можете сказать

 `.one('click', function() { ... })`.

Вы можете прочитать об этом в документации jQuery для .one().

Поскольку вы хотите отправить загрузку на странице, давайте обойдем ее примерно так:

$(document).ready(function(){
const autSubmit =$(this).find("input[type='submit']);
autSubmit.one('click',function(){
/* Any code you will like to execute    onSubmit*/ });
autSubmit.trigger('click');});

После первого запуска, нажав кнопку, вы заметите, что код в обработчике кликовне будет выполнен снова, что я думаю, что вы хотите, так что вы также можете отключить кнопку в этом обработчике кликов.Итак, где у нас

` /* Any code you will like to execute onSubmit*/` 

выше, вы можете просто заменить его на

$(this).attr('disabled',true)

, чтобы кнопка действительно была отключена, но правда в том, что после первого нажатия обработчик щелчка на кнопкене будет запускаться снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...