我有一个令我困惑的问题。我创建了一个网页,点击一个按钮打开一个包含表单的引导模式窗口,我使用jquery验证。奇怪的是我收到了一些无效的电子邮件提交内容:
假设未启用javascript,则无法看到表单本身,因此提交无可置疑。
jquery验证工作正常,我已经用几种不同的方案测试了它。 我的验证脚本如下
<script type="text/javascript">
$(document).ready(function(){
$("#contact-us-form").validate({
rules:{
emailAddress:{
minlength: 5,
maxlength: 255,
required: true,
validEmail: true
}
},
ignore: '',
highlight: function(element) {
$(element).addClass('error_new');
//HIGHLIGHT THE LABEL
var textelement = "#"+($(element).attr("name"))+"_text";
$(textelement).addClass('error_text');
//HIGHLIGHT THE BORDER
if($(element).siblings().length > 0){
var nextelement = $(element).siblings();
$(nextelement).css("border-color","#F00");
}
},
unhighlight: function(element) {
$(element).removeClass('error_new');
var textelement = "#"+($(element).attr("name"))+"_text";
$(textelement).removeClass('error_text');
if($(element).siblings().length > 0){
var nextelement = $(element).siblings();
$(nextelement).css("border-color","#CCC");
}
},
errorPlacement: function(error, element) {
if($(element).attr("name") == "emailAddress"){
error.appendTo( element.parent("div") );
}
},
messages: {
emailAddress: {
required: "Please enter a valid email adress",
email: "Please enter a valid email adress"
}
}
});
jQuery.validator.addMethod("validEmail", function(value, element)
{ if(value == '')
return true;
var temp1;
temp1 = true;
var ind = value.indexOf('@');
var str2=value.substr(ind+1);
var str3=str2.substr(0,str2.indexOf('.'));
if(str3.lastIndexOf('-')==(str3.length-1)||(str3.indexOf('-')!=str3.lastIndexOf('-')))
return false;
var str1=value.substr(0,ind);
if((str1.lastIndexOf('_')==(str1.length-1))||(str1.lastIndexOf('.')==(str1.length-1))||(str1.lastIndexOf('-')==(str1.length-1)))
return false;
str = /(^[a-zA-Z0-9]+[\._-]{0,1})+([a-zA-Z0-9]+[_]{0,1})*@([a-zA-Z0-9]+[-]{0,1})+(\.[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,3})$/;
temp1 = str.test(value);
return temp1;
}, "Please enter valid email.");
});
</script>
我不明白为什么我收到无效的电子邮件提交。关于这个问题的任何想法都会有很大帮助。