Как автоматически отправить форму через несколько секунд после заполнения TextBox - PullRequest
1 голос
/ 07 мая 2019

У меня есть страница самообслуживания, которая после сканирования клиентом своего штрих-кода на странице приветствия, а затем перенаправления на страницу подтверждения.

Я использовал OnTextChanged Событие с AutoPostBack, установленным в значение True, но ничегопроизошло после того, как я попытался заполнить TextBox, похоже, что AutoPostBack не работает после того, как я заполнил TextBox.

Вот мой код:

asp:TextBox runat="server" ID="txtID" CssClass="form-control form-control-lg" AutoPostBack="true" OnTextChanged="txtID_TextChanged"

Код сзади:

Protected Sub txtID_TextChanged(sender As Object, e As EventArgs) Handles txtID.TextChanged
    Dim barc As String = txtID.Text
    Response.Redirect(String.Format("Cart.aspx?barc={0}", barc))
End Sub

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

1 Ответ

0 голосов
/ 07 мая 2019

Таким образом, существует множество способов сделать это, но самый простой часто является лучшим, поэтому вот несколько ванильных JavaScript:

<form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    <script>
        let timer;
        //(2.5 seconds):
        let timeLimit = 2500;  
        let txtTracked = document.getElementById('TextBox1');

        //When the user stops typing, start the countdown
        txtTracked.addEventListener('keyup', () => {
            clearTimeout(timer);
            if (txtTracked.value) timer = setTimeout(typingFinished, timeLimit);
        });

        ////The timer has run out:
        function typingFinished() {
            //do something
            alert("User has finished typing");
            document.getElementById("form1").submit();
        }
    </script>
</form>

Приведенный выше JavaScript будет отслеживать определенный элемент управления (в данном случае TextBox)используя его идентификатор, через 2,5 секунды после того, как пользователь не наберет его, он отправит форму в ваш код.

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