在表单提交完成后获取Jquery代码

时间:2013-05-09 11:21:55

标签: javascript jquery forms

我的代码当用户在表单中出错时,Jquery代码会向表中添加文本。但是,一旦完成检查,文本就会消失,因此只会出现短暂的瞬间。

以下是用户名验证器:

function validateUserName()
{
    var u = document.forms["NewUser"]["user"].value
    var uLength = u.length;
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if (u == null || u == "")
    {
        $("#ErrorUser").text("You Left the Username field Emptyyy");
        return false;
    }
    else if (uLength <4 || uLength > 11)
    {
        $("#ErrorUser").text("The Username must be between 4 and 11 characters");
        return false;
    }
    else if (illegalChars.test(u)) 
    {
        $("#ErrorUser").text("The Username contains illegal charectors men!");
        return false;
    }
    else
    {
        return true;
    }
}

2 个答案:

答案 0 :(得分:0)

要阻止表单提交,您需要阻止默认操作。这样:

function validateUserName(e)
{
    e.preventDefault();
    var u = document.forms["NewUser"]["user"].value;
    var uLength = u.length;
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if (u == null || u == "")
    {
        $("#ErrorUser").text("You Left the Username field Emptyyy");
        return false;
    }
    else if (uLength <4 || uLength > 11)
    {
        $("#ErrorUser").text("The Username must be between 4 and 11 characters");
        return false;
    }
    else if (illegalChars.test(u)) 
    {
        $("#ErrorUser").text("The Username contains illegal charectors men!");
        return false;
    }
    else
    {
        return true;
    }
}

你需要以这种方式调用事件:

$("form").onsubmit(validateUserName);

更新:根据评论。

以这种方式更改<form>代码标记:

<form name="NewUser" id="myform">

在JavaScript中,使用这种方式:

$("form").onsubmit(function(e){
    e.preventDefault();
    var u = document.forms["NewUser"]["user"].value;
    var uLength = u.length;
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if (u == null || u == "")
    {
        $("#ErrorUser").text("You Left the Username field Emptyyy");
        return false;
    }
    else if (uLength <4 || uLength > 11)
    {
        $("#ErrorUser").text("The Username must be between 4 and 11 characters");
        return false;
    }
    else if (illegalChars.test(u)) 
    {
        $("#ErrorUser").text("The Username contains illegal charectors men!");
        return false;
    }
    else
    {
        return true;
    }
});

答案 1 :(得分:-1)

正如@adeneo在评论中已经提到的,您需要阻止您的表单提交。

<input type="submit" value="Submit" onclick="if(!validateUserName()) return false;"/>

如果表单有错误,这将阻止您的表单提交数据。您已经从Javascript函数返回true / false,只需使用它们。