2013-11-09 42 views
-1

好吧我正在尽我所能通过测试和实践来学习jQuery。我知道有很多完美的库来验证表单,但我想至少现在就自己学习! 我在this Link中有一个表单,我在验证表单时出错。正如你可以看到我有两个简单的输入电子邮件和用户名现在我想要做的是检查整个输入在enter image description here第一步是看看是否有任何空投入或没有,如果是这样jquery会产生错误消息(这是做现在)enter image description here然后,我想添加一些字段验证器来检查所有输入,在这里我得到的问题
首先,代码实际上没有验证输入,也是将错误消息添加到另一个输入好!最后,即使在输入正确的输入之后,也不会提交!另一个与表单验证问题

这里是我的代码有:

$(document).ready(function() { 
var email = $('form #email').val(); 
$('#myform').submit(function() { 
     var abort = false; 
     $("div.err").remove(); 
     $(':input[required]').each(function() { 
      if ($(this).val()==='') { 
       $(this).parent().after('<div class="err">This is a Requierd Field</div>'); 
       abort = true; 
      } 
      else{ 
       if (!email.match(/^([a-z0-9._-][email protected][a-z0-9._-]+\.[a-z]{2,4}$)/i)) { 
       $(this).parent().after('<div class="err">Email Not Match</div>'); 
       abort = true;           
       } 
      } 
     }); 
     if (abort) { return false; } else { return true; 
     } 
    }) 
}); 

回答

0

要解决 '电子邮件不匹配' 问题,改变这一点 -

else{ 
    if (!email.match(/^([a-z0-9._-][email protected][a-z0-9._-]+\.[a-z]{2,4}$)/i)) { 
    $(this).parent().after('<div class="err">Email Not Match</div>'); 
    abort = true;           
    } 
} 

为了这一点 -

else{ 
    if (!email.match(/^([a-z0-9._-][email protected][a-z0-9._-]+\.[a-z]{2,4}$)/i)) { 
    $(email).parent().after('<div class="err">Email Not Match</div>'); 
    abort = true;           
    } 
}