-1

好的,我正在尽我所能通过测试和实践来学习 jquery。我知道验证表单有一些完美的库,但我至少现在想自己学习它!我在此链接中有一个表格,我在验证表格时遇到错误。如您所见,我有两个简单的输入电子邮件和用户名现在我要做的是在在此处输入图像描述第一步检查整个输入是查看是否有任何空输入,如果有,jquery 将生成错误消息(现在正在执行)在此处输入图像描述然后我想添加一些按字段提交的验证器来检查所有输入,在这里我遇到了问题
首先,代码实际上并没有验证输入,也将错误消息添加到其他输入!最后,即使在输入正确的输入后,表格也不会提交!

这是我的代码:

$(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._-]+@[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; 
        }
    })
});
4

1 回答 1

0

To fix the 'Email Not Match' problem change this -

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

To this -

else{
  if (!email.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    $(email).parent().after('<div class="err">Email Not Match</div>');
    abort = true;                                         
  }
}
于 2013-11-12T05:25:43.837 回答