电子邮件验证不起作用

时间:2012-09-03 06:54:33

标签: jquery validation email

我在http://info.cfgt.com.au/diploma-of-management/sq1/

上使用此脚本
<script type="text/javascript">

jQuery(document).ready(function() {
function validateEmail(sEmail) {
var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (filter.test(sEmail)) {
    return true;
}
else {
    return false;
}
}
});

jQuery(document).ready(function() {
jQuery('form').submit(function() {
    var sEmail = jQuery('#inf_field_Email').val();

    if (validateEmail(sEmail)) {
        alert('Email is valid');
        e.preventDefault();
    }
    else {
        alert('Invalid Email Address');
        e.preventDefault();
    }
});
});
</script>

无论我做什么,表单都会提交,并重定向到默认的infusionsoft错误页面。

我不能为我的生活弄清楚我错过了什么,而且我已经到了我的第7个小时。

有什么想法吗?

干杯,

John Detlefs

编辑:

我现在正在使用以下哪种作品:

<script>
jQuery(document).ready(function() {
jQuery('form').submit(function() {
email_address = jQuery('#inf_field_Email');           
email_regex = /^[a-z0-9\._]*[a-z0-9_]@[a-z0-9][a-z0-9\-\.]*[a-z0-9]\.[a-z]{2,6}$/i;
if(!email_regex.test(email_address.val())){
alert('Please enter a valid email');
return false;
}else{
alert('All Good!');
return true;
}
});
});
</script>

我现在唯一的问题是,它会接受任何东西,而且似乎根本不需要“.domain”。

2 个答案:

答案 0 :(得分:2)

如果有多个jQuery(document).ready(function()块,则无法从另一个块中调用一个中定义的函数。见Can you have multiple $(document).ready(function(){ ... }); sections?

所以尝试将它们组合成一个大函数,看看是否能解决它。

另外,您是否考虑过使用jQuery Validate插件?

答案 1 :(得分:0)

我检查了你的页面。您网页上的错误很少..

首先。找不到你的jQuery。

http://info.cfgt.com.au/wp-content/plugins/jquery.validity.1.2.0/jquery.js"

因为它没有将$识别为函数。所以你的$(function())给出错误。

关于电子邮件部分

将正则表达式更改为

var filter = /^[a-z0-9\._]*[a-z0-9_]@[a-z0-9][a-z0-9\-\.]*[a-z0-9]\.[a-z]{2,6}$/i;