在IE9中使用Jquery和Modernizer验证HTML5表单
我正在创建一个HTML5表单,不幸的是占位符属性在IE9中不起作用。Modernizer帮助我解决了这个问题,但是Modernizer的问题是创建占位符属性作为输入值,这限制了我验证字段是否为空 为了解决验证问题,我创建了以下代码:在IE9中使用Jquery和Modernizer验证HTML5表单,jquery,internet-explorer,html,validation,modernizr,Jquery,Internet Explorer,Html,Validation,Modernizr,我正在创建一个HTML5表单,不幸的是占位符属性在IE9中不起作用。Modernizer帮助我解决了这个问题,但是Modernizer的问题是创建占位符属性作为输入值,这限制了我验证字段是否为空 为了解决验证问题,我创建了以下代码: $(".button").click(function(){ var reEmail = /^[A-Za-z0-9][a-zA-Z0-9._-][A-Za-z0-9]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/; var
$(".button").click(function(){
var reEmail = /^[A-Za-z0-9][a-zA-Z0-9._-][A-Za-z0-9]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
var email = $("#email");
var name = $("#name");
if (name.val()=="Name [Required]" && name.val()==""){
name.val("");
name.focus();
} else if (email.val()=="Email [Required]" && email.val()==""){
email.val("");
email.focus();
} else if (!reEmail.test(email)){
email.val("");
email.focus();
} else{
alert("Thanks!");
}
});
但即使电子邮件是正确的,这也不起作用
注意:很抱歉我的英语和JS代码,我还在学习:)我发现您的代码有一些地方是错误的:
(!reEmail.test(email))
应该是(!reEmail.test(email.val())
我发现您的代码有一些地方是错误的:
(!reEmail.test(email))
应该是(!reEmail.test(email.val())
您的代码有几个问题 flynfish已经确定了两个最重要的选项:) 错误:
名称为占位符*或*为空
而非名称为占位符*且*为空
(!reEmail.test(email))
更改为(!reEmail.test(email.val())
以检查值
、
和-
作为第二个字符。您也没有转义
,因此它表示任何字符,而不仅仅是一个点。也要转义-
,因为JSLint/JSHint讨厌它未转义时:)name.attr('placeholder')
访问占位符值。这样,如果更改占位符文本,就不必修改JavaScript
元素,并将Moderznir与任何支持电子邮件输入的html5表单一起使用。那会让你的工作轻松很多。您已经在使用moderznizr和polyfills作为占位符,所以请检查它是否也支持电子邮件输入验证您的代码有几个问题 flynfish已经确定了两个最重要的选项:) 错误:
名称为占位符*或*为空
而非名称为占位符*且*为空
(!reEmail.test(email))
更改为(!reEmail.test(email.val())
以检查值
、
和-
作为第二个字符。您也没有转义
,因此它表示任何字符,而不仅仅是一个点。也要转义-
,因为JSLint/JSHint讨厌它未转义时:)name.attr('placeholder')
访问占位符值。这样,如果更改占位符文本,就不必修改JavaScript
元素,并将Moderznir与任何支持电子邮件输入的html5表单一起使用。那会让你的工作轻松很多。您已经在使用moderznizr和polyfills作为占位符,所以请检查它是否也支持电子邮件输入验证如果您仍然有困难,那么我建议您使用以下小jQuery脚本:
它与IE9中的MailChimp表单完美配合。如果您仍然有困难,那么我建议您使用以下小jQuery脚本:
它与IE9中的MailChimp表单完美配合。谢谢!我的错误是菜鸟,我很沮丧,但你帮我解决了问题,再次感谢:)谢谢!我的错误是菜鸟,我很沮丧,但你帮我解决了问题,再次感谢你:)