表单点击功能可在提交前检查变量

Form click function to check variable before submitting

本文关键字:提交 检查 变量 功能 表单      更新时间:2023-09-26

我正在使用$.get函数在提交ASP登录表单之前检查与服务器的连接。如果 get 函数成功并返回 true,则表单应提交,否则如果失败并返回 false,则不应提交。

我尝试了许多不同的配置,但我尝试过的所有配置要么使按钮无法操作,要么只显示真,而不是假!

任何建议不胜感激。谢谢。

<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Enter" ValidationGroup="LoginUserValidationGroup" class="submitButton" />

更新 - 下面的代码正确执行了 get 函数,但我有一种感觉问题出在 $('form').submit();

返回 true 时,页面会像发送数据一样刷新,但系统不会登录用户。这是为什么!?

submitButton.click(function () { // capitalize username on login
            var url = 'https://examplesite.com/';
            $.get(url).done(function () {
                if (usernameBox.val() === '') {
                    usernameBox.attr('placeholder', 'Username Required');
                    passwordBox.attr('placeholder', '');
                    usernameBox.focus();
                    return false;
                }
                else if (passwordBox.length && passwordBox.val() === '') {
                    passwordBox.attr('placeholder', 'Password Required');
                    usernameBox.attr('placeholder', '');
                    passwordBox.focus();
                    return false;
                }
                else if (passwordBox.length && passwordBox.val().length < 6) {
                    passwordBox.focus();
                    return false;
                }
                else {
                    alert('Successful - Now logging in');
                    $('form').submit();
                }
            }).fail(function () {
                    alert('Failed - No Connection');
            });
            return false;
        });
    };
$.get是一个

异步函数,因此online永远不会设置为您认为的,因为在调用完成之前正在处理其余代码。将您的逻辑移到其中.done部分!

$.get(url).done(function () {
    online = true;
    if (online == true) {
        alert('Success');
        $('form').submit();
    }
    else if (online == false) {
        alert('Cannot Connect');
        return false;
    }
    else {
        return false;
    }
}).fail(function () {
    online = false;
});