有没有办法扭转表格提交的暂停,或者最好不要首先完成表格?

Nat*_*ate 5 javascript forms jquery

我正在尝试制作一个简单的Web应用程序.在我的登录页面中,我有一个带有文本字段,密码和提交按钮的表单.如果任一字段为空,则阻止表单提交.这是我使用的脚本:

 function checkLoginCredentials() {
    var usernameFormValue = $("#usernameForm").val().trim();
    var passwordFormValue = $("#passwordForm").val().trim();
    var validated;


    $("#loginForm").submit(function(event){
        if (usernameFormValue === "" || passwordFormValue === "") {
            $("span").html("Enter a username or password");
            validated = false
        } else {
            validated = true;
        }
        return validated;
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,我注意到一旦脚本运行并且表单提交被阻止,用户就不能再尝试登录了.我能想到的唯一选择是让我的登录servlet和实用程序类完成所有验证.有没有办法解决这个问题,还是必须通过我的Java类来验证无效条目,比如空字符串?

epa*_*llo 5

这里的问题是您如何分配验证代码.您有一个checkLoginCredentials,当您调用它时,您会阅读表单值.而不是你添加表单提交.您应该在submit方法中添加文本框值的读取,而不是在外部.

$("#loginForm").submit(function(event){

    var usernameFormValue = $("#usernameForm").val().trim(),
        passwordFormValue = $("#passwordForm").val().trim(),
        validated;

    if (usernameFormValue === "" || passwordFormValue === "") {
        $("span").html("Enter a username or password");
        validated = false
    } else {
        validated = true;
    }
    return validated;
});
Run Code Online (Sandbox Code Playgroud)