我的代码当用户在表单中出错时,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;
}
}
答案 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
,只需使用它们。