Javascript 我在验证或提交表格时遇到问题
我的表单似乎没有进行验证或提交。它以前是提交和验证的,但是Jquery错误消息并没有同时显示,所以我不得不编辑代码,现在它根本没有提交或验证 这是我的JS:Javascript 我在验证或提交表格时遇到问题,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我的表单似乎没有进行验证或提交。它以前是提交和验证的,但是Jquery错误消息并没有同时显示,所以我不得不编辑代码,现在它根本没有提交或验证 这是我的JS: function validateUserName(user) { var u = document.forms["NewUser"]["user"].value var uLength = u.length; var illegalChars = /\W/; // allow letters, numbers, a
function validateUserName(user)
{
var u = document.forms["NewUser"]["user"].value
var uLength = u.length;
var illegalChars = /\W/; // allow letters, numbers, and underscores
if (u == null || u == "")
{
return "You Left the Username field Emptyyy";
}
else if (uLength <4 || uLength > 11)
{
return "The Username must be between 4 and 11 characters";
}
else if (illegalChars.test(u))
{
return "The Username contains illegal charectors men!";
}
else
{
return "";
}
}
function validatePassword(pwd)
{
var p = document.forms["NewUser"]["pwd"].value
var cP = document.forms["NewUser"]["confirmPwd"].value
var pLength = p.length;
if (p == null || p == "")
{
return "You left the password field empty";
}
else if (pLength < 6 || pLength > 20)
{
return "Your password must be between 6 and 20 characters in length";
}
else if (p != cP)
{
return "The passwords do not match!"
}
else
{
return "";
}
}
function validateEmail(email)
{
var e = document.forms["NewUser"]["email"].value
var eLength = e.length;
var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
if (eLength == "" || eLength == null)
{
return "You left the email field blank!";
}
else if (e.match(illegalChars))
{
return "ILEGAL CHARECTORS DETECTED EXTERMINATE";
}
else
{
return "";
}
}
function validateFirstName(fname)
{
var f = document.forms["NewUser"]["fName"].value;
var fLength = f.length;
var illegalChars = /\W/;
if(fLength > 20)
{
return "First Name has a max of 20 characters";
}
else if (illegalChars.test(f))
{
return "Numbers,letter and underscores in first name only";
}
else
{
return "";
}
}
function validateLastName(lName)
{
var l = document.forms["NewUser"]["lName"].value;
var lLength = l.length;
var illegalChars = /\W/;
if(lLength > 100)
{
return "Last Name has a max of 100 characters";
}
else if (illegalChars.test(f))
{
$("#ErrorLname").text("Numbers,letter and underscores in last name only";
}
else
{
return "";
}
}
function validateForm()
{
/*
valid = true;
//call username function
valid = valid && validateUserName();
//call password function
valid = valid && validatePassword();
//call email function
valid = valid && validateEmail();
//call first name function
valid = valid && validateFirstName();
//call first name function
valid = valid && validateLastName();
return valid;
*/
var error = "";
//call username function
error += "\n"+validateUserName();
//call password function
error += "\n"+validatePassword();
error += "\n"+validateEmail();
error += "\n" + validateFirstName();
error += "\n" + validateLastName();
if(error === ""){
return true;
}
else{
$("#ErrorUser").text(error);
$("#ErrorEmail").text(error);
$("#ErrorFname").text(error);
$("#ErrorPassword1").text(error);
$("#ErrorLname").text(error);
return false;
}
}
$('#your-form').submit(validateForm);
函数validateUserName(用户)
{
var u=document.forms[“NewUser”][“user”].value
var uLength=u.长度;
var illegalChars=/\W//;//允许使用字母、数字和下划线
如果(u==null | | u==“”)
{
返回“您将用户名字段留空YYY”;
}
否则,如果(U长度11)
{
返回“用户名必须在4到11个字符之间”;
}
else if(非法字符测试(u))
{
return“用户名包含非法的charectors men!”;
}
其他的
{
返回“”;
}
}
功能验证密码(pwd)
{
var p=document.forms[“NewUser”][“pwd”].value
var cP=document.forms[“NewUser”][“confirmPwd”].value
var pLength=p.长度;
如果(p==null | | p==“”)
{
返回“您将密码字段留空”;
}
否则,如果(增压<6 | |增压>20)
{
return“您的密码长度必须在6到20个字符之间”;
}
否则如果(p!=cP)
{
return“密码不匹配!”
}
其他的
{
返回“”;
}
}
功能验证电子邮件(电子邮件)
{
var e=document.forms[“NewUser”][“email”].value
变量长度=e.长度;
var emailFilter=/^[^@]+@[^@.]+\.[^@]*\w\w$/;
变量illegalChars=/[\(\)\\,\;\:\\\\“\[\]]/;
如果(元素长度==“”| |元素长度==null)
{
return“您将电子邮件字段留空!”;
}
否则如果(如匹配(非法字符))
{
返回“检测到的ILEGAL CHARECTORS已清除”;
}
其他的
{
返回“”;
}
}
函数validateFirstName(fname)
{
var f=document.forms[“NewUser”][“fName”].value;
var fLength=f.长度;
var illegalChars=/\W/;
如果(长度>20)
{
return“名字最多20个字符”;
}
else if(非法字符测试(f))
{
返回“仅限名字中的数字、字母和下划线”;
}
其他的
{
返回“”;
}
}
函数validateLastName(lName)
{
var l=document.forms[“NewUser”][“lName”].value;
var l长度=l长度;
var illegalChars=/\W/;
如果(长度>100)
{
return“姓氏最多100个字符”;
}
else if(非法字符测试(f))
{
$(“#ErrorName”).text(“仅姓氏中的数字、字母和下划线”;
}
其他的
{
返回“”;
}
}
函数validateForm()
{
/*
有效=真;
//调用用户名函数
valid=valid&&validateUserName();
//调用密码函数
valid=valid&&validatePassword();
//呼叫电子邮件功能
valid=valid&&validateEmail();
//调用名字函数
valid=valid&&validateFirstName();
//调用名字函数
valid=valid&&validateLastName();
返回有效;
*/
var误差=”;
//调用用户名函数
错误+=“\n”+validateUserName();
//调用密码函数
错误+=“\n”+验证密码();
错误+=“\n”+验证邮件();
错误+=“\n”+validateFirstName();
错误+=“\n”+validateLastName();
如果(错误==“”){
返回true;
}
否则{
$(“#ErrorUser”).text(错误);
$(“#错误电子邮件”)。文本(错误);
$(“#ErrorFname”).text(错误);
$(“#ErrorPassword1”).text(错误);
$(“#ErrorName”).text(错误);
返回false;
}
}
$(“#您的表格”)。提交(validateForm);
Fiddle:您的代码中几乎没有错误
else if(非法字符测试(l))
$(function() {
$('#your-form').submit(function() {
return validateForm();
});
});
通知jQuery在提交表单时验证表单。在小提琴中,您忘记了表单标记上的
method=“POST”
<form name = "NewUser" id = "your-form" method="POST">
你能创建一个提琴吗?有控制台错误吗?为什么不放控制台消息或警报消息呢..如果你什么也没看到,那么提交表单后就是JS错误解决这就是Javascript调试器的目的。你做了什么调查?好的。我添加了一个fiddle@Barmar什么是javascript调试器?哇,谢谢,它几乎可以工作了现在对我来说。唯一的问题是,所有的错误消息都显示在每个表单字段上,而不是仅显示在适用的消息上。你知道我如何解决这个问题吗?当一切都正确时,表单不会提交?要使其正常工作,你必须独立检查每个字段的相应错误。然后检查所有字段是否没有发生错误如果出现错误,则获取相应验证函数的消息,并将其应用于每个字段旁边的错误元素。我已更新了fiddle,但在我看来,这是一种快速而肮脏的验证方法,它工作正常,但您可能需要更有效地重新实现它。您帮了大忙,谢谢:)