Javascript 将多个跨度错误类与单个文本框一起使用

Javascript 将多个跨度错误类与单个文本框一起使用,javascript,validation,Javascript,Validation,在前面的示例中,我使用span进行了表单验证 但当我在一个字段上使用多个验证时,我将面临以类似span的方式显示的问题 var x=document.forms["reg"]["email"].value; var atpos=x.indexOf("@"); var dotpos=x.lastIndexOf("."); if(x ==null || x=="") { document.getElementById("error2").innerHTML = "enter

在前面的示例中,我使用span进行了表单验证

但当我在一个字段上使用多个验证时,我将面临以类似span的方式显示的问题

 var x=document.forms["reg"]["email"].value;
  var atpos=x.indexOf("@");
   var dotpos=x.lastIndexOf(".");
 if(x ==null || x=="")
 {
   document.getElementById("error2").innerHTML = "enter Email"

   $var=false;
 }
 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
 {
   document.getElementById("error3").innerHTML = "enter correct Email"
   $var=false;
 }
var x=document.forms[“reg”][“email”].value;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(x==null | | x==“”)
{
document.getElementById(“error2”).innerHTML=“输入电子邮件”
$var=false;
}

如果(atpos,因为您的脚本在页面加载后立即调用,并且没有按预期运行的sp提供任何值,那么您可以在其周围放置一个函数,并从以下位置调用:例如,
表单
onsubmit
,或电子邮件
输入
元素上的内联事件处理程序,如
onblur

我不知道,
$var
是做什么用的,但它没有申报

试试这个

<input type="text" name="email" id="email"  onblur="checkEmailField()"/>

下面的功能不会显示“输入电子邮件”,除非用户关注电子邮件字段,然后离开该字段而不输入任何内容

function checkEmailField(){


 var x=document.forms["reg"]["email"].value;
  var atpos=x.indexOf("@");
   var dotpos=x.lastIndexOf(".");
if(x ==null || x=="" )
{
  document.getElementById("error2").innerHTML = "enter Email"
document.getElementById("error3").innerHTML = "";
   $var=false;
}else 

 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length &&  x != "" && x!=null)
 {
 document.getElementById("error2").innerHTML = "";
document.getElementById("error3").innerHTML = "enter correct Email"

 $var=false;
}
}
函数checkEmailField(){
var x=document.forms[“reg”][“email”].value;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(x==null | | x==“”)
{
document.getElementById(“error2”).innerHTML=“输入电子邮件”
document.getElementById(“error3”).innerHTML=“”;
$var=false;
}否则

如果(atpos,因为您的脚本在页面加载后立即调用,并且没有按预期运行的sp提供任何值,那么您可以在其周围放置一个函数,并从以下位置调用:例如,
表单
onsubmit
,或电子邮件
输入
元素上的内联事件处理程序,如
onblur

我不知道,
$var
是做什么用的,但它没有申报

试试这个

<input type="text" name="email" id="email"  onblur="checkEmailField()"/>

下面的功能不会显示“输入电子邮件”,除非用户关注电子邮件字段,然后离开该字段而不输入任何内容

function checkEmailField(){


 var x=document.forms["reg"]["email"].value;
  var atpos=x.indexOf("@");
   var dotpos=x.lastIndexOf(".");
if(x ==null || x=="" )
{
  document.getElementById("error2").innerHTML = "enter Email"
document.getElementById("error3").innerHTML = "";
   $var=false;
}else 

 if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length &&  x != "" && x!=null)
 {
 document.getElementById("error2").innerHTML = "";
document.getElementById("error3").innerHTML = "enter correct Email"

 $var=false;
}
}
函数checkEmailField(){
var x=document.forms[“reg”][“email”].value;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(x==null | | x==“”)
{
document.getElementById(“error2”).innerHTML=“输入电子邮件”
document.getElementById(“error3”).innerHTML=“”;
$var=false;
}否则

if(atpos$var是一个空变量,我用它来输入值。在这个函数的最后一个部分,我检查$var的值。如果它为false,那么我返回false;否则返回true;另一个问题是,我的表单很大,有很多类似于密码的字段(最小长度,不允许空格,密码和重新输入密码匹配)那么,我如何在单个字段中通过调用blur或其他函数来管理所有这些验证呢?我可以建议一个很好的理解方法是查看示例,我认为这将是一个很好的开始,我阅读了这个示例,但我的要求是同时显示所有错误消息及其相关字段,而不是在警告框中。@omnath这包含good info$var是一个空变量,我用它来输入值。在这个函数的最后一个部分,我检查$var的值。如果它为false,那么我返回false;否则返回true;另一个问题是,我的表单很大,有很多类似于密码的字段(最小长度,不允许空格,密码和重新输入密码匹配)那么,我如何在单个字段中通过调用blur或其他函数来管理所有这些验证呢?我可以建议一个很好的理解方法是查看示例,我认为这将是一个很好的开始,我阅读了这个示例,但我的要求是同时显示所有错误消息及其相关字段,而不是在警告框中。@omnath这包含好消息