0

我在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 个小时。

有任何想法吗?

干杯,

约翰·德特莱夫斯

编辑:

我现在正在使用以下内容,哪种有效:

<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>

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

4

2 回答 2

2

当您有多个jQuery(document).ready(function()块时,不能从另一个块中调用其中定义的函数。请参阅Can you have multiple $(document).ready(function(){ ... }); 部分?

所以试着把它们组合成一个大函数,看看能不能解决它。

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

于 2012-09-03T07:11:44.820 回答
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;
于 2012-09-03T07:03:15.457 回答