【发布时间】:2013-07-23 21:49:46
【问题描述】:
如果字段无效,我的代码基本上会添加一个类错误,如果该字段有效,则会删除错误类并正常提交表单。
我无法找出我创建的表单验证代码的两个小错误。
下面列出的错误:
1) 如果您在一个字段中输入正确的内容,然后单击提交,则错误类别的长度不会在第一次提交单击时更新。更新长度需要两次提交点击。 (查看console.log)
2)如果您更改输入字段的内容并单击提交(一切正常,错误类已删除)但如果您决定删除更新的文本并将该字段留空,则错误类不会重新获得已申请。
如果我能得到一些帮助来解决这个问题,那就太好了。
如果有什么不清楚的地方请告诉我。
提前致谢: JSFIDDLE
$('form.requiredFields').submit(function(e) {
var req = $(this).find('.req'),
validateEmail = function(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
};
req.each(function() {
var $this = $(this),
defaultVal = $this.prop('defaultValue'); //cache default val
//checks for validation errors
if ( ( $this.hasClass('email') && !validateEmail( $this.val() ) ) ||
( defaultVal === $this.val() || $this.val() === '' || $this.val().length < 3 )
)
{
$this.addClass('error');
} else {
$this.removeClass('error req');
}
});
console.log(req.length);
if ( req.length === 0 ) {
return true;
} else {
return false;
}
});
【问题讨论】:
标签: javascript jquery forms validation