我试图验证一个电子邮件地址onkeyup只有以下似乎永远不会返回有效,
任何人都可以看到我可能出错的地方?我只有1个输入,我的.first()选择器正确定位...
$('.newsletter-signup input').first().keyup(function(){
$email = $('.newsletter-signup input').first();
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if( !emailReg.test( $email ) ) {
alert('foo');
} else {
alert('bar');
}
}
});
Run Code Online (Sandbox Code Playgroud)
您的代码有点不正确,您可以这样做:
$('.newsletter-signup input').first().keyup(function () {
var $email = this.value;
validateEmail($email);
});
function validateEmail(email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if (!emailReg.test(email)) {
alert('foo');
} else {
alert('bar');
}
}
Run Code Online (Sandbox Code Playgroud)
在你的代码中:
$email = $('.newsletter-signup input').first();
Run Code Online (Sandbox Code Playgroud)
你只获得第一个输入的jQuery对象而不是值.因此,验证根本不起作用.
因此,为了获得input您可以使用的元素的值:
var $email = this.value;
Run Code Online (Sandbox Code Playgroud)
因为this这里指的是$('.newsletter-signup input').first().所以需要再次调用它,然后从中获取它的值.您可以直接使用this.value.
| 归档时间: |
|
| 查看次数: |
11946 次 |
| 最近记录: |