0

フォーム内の複数のフィールドを検証しようとしています。ほとんどの場合、私のコードは機能しているように見えますが、さらにテストすると、いくつかの奇妙な動作に気付きました。なんらかの理由で、最後のフィールドが機能している場合、私のフォームは通過しているように見えます。この場合、他のすべてのエラーチェックは無視されます。また、私のメッセージが更新されていないようです。間違った送信の後、別のエラーで再度送信されます。なぜこれが起こるのか、誰か説明してもらえますか?

これが私の送信ボタンです。

<button type="submit" onclick="return validateRegistrationForm()" >
    Register
</button>

脚本:

function validateRegistrationForm()
{
    return validateUsername(), validatePassword(), validateConfirmPassword();
}

function validateUsername()
{
    var x=document.forms["registration"]["userName"].value;if (x == null || x == "")
    {
        document.getElementById("usernameWarnings").innerHTML = "Username is Required!";
        return false;
    }
    else if (x.length < 6 || x.lenth > 10)
    {
        document.getElementById("usernameWarnings").innerHTML = "Must be Between 6 to 10 Characters!";
        return false;
    }
    else
    {
        return true;
    }
}

function validatePassword()
{
    var y=document.forms["registration"]["userPassword"].value;
    if (y == null || y == "")
    {
        document.getElementById("passwordWarnings").innerHTML = "Password is Required!";
        return false;
    }
    else if (y.length < 6 || y.lenth > 10)
    {
        document.getElementById("passwordWarnings").innerHTML = "Must be Between 6 to 10 Characters!";
        return false;
    }
    else
    {
        return true;
    }
}
function validateConfirmPassword()
{
    var y=document.forms["registration"]["userPassword"].value;
    var k=document.forms["registration"]["cUserPassword"].value;
    if (k == null || k == "")
    {
        document.getElementById("confirmPasswordWarnings").innerHTML = "Confirm Password is Required!";
        return false;
    }
    else if (y != k)
    {
        document.getElementById("confirmPasswordWarnings").innerHTML = "Passwords not the same";
        return false;
    }
    else
    {
        return true;
    }
}
4

1 に答える 1