使用jQuery自动验证表单

时间:2013-01-29 09:36:44

标签: jquery forms validation

我为验证表单编写了此代码:

$('form').submit(function() {
    $.each($(this).find('.required'), function(i,d){
        var lName = '#'+$(d).attr('for'); 
        if (!$(lName).val()) {
            $('html, body').animate({ scrollTop: $(d).offset().top }, 'slow');
            $(d).css({'color': '#ff0954'});
            if ($(lName).attr('class') == 'ckeditor') {

            }else{
                for(i=0;i<3;i++) {
                    $(lName).fadeTo('fast', 0.5).fadeTo('fast', 1.0);
                }
            }
            return false;
        }
    });
});

我的代码将使用label类名称在reqiured代码中进行搜索并验证字段。

每件事似乎都没问题,但我遇到了一些问题:

  1. 当字段有问题时我使用return false;,但表单将提交。
  2. focus上课时<{1}}
  3. 我无法验证ckeditorradiocheckbox代码

3 个答案:

答案 0 :(得分:0)

1

尝试在每个循环之前将变量设置为true。然后,如果返回false,则将该变量设置为false。循环之后,检查该变量,如果为false,则返回false。你现在正在对每个函数返回false,你需要在提交时进行。

这样的事情:

$('form').submit(function() {
    var valid = true;
    $.each($(this).find('.required'), function(i,d){
        // all your checks
        // if your checks are bad
        valid = false;
    });
    if (valid === false) {
        return false;
    }
}); 

2

什么是ckeditor?我们可以看到你的完整htmll吗?

3

你想验证什么? @ sparky的评论可能是正确答案。

答案 1 :(得分:0)

使用此...

$('#myForm').on('submit', function(){
    $("#myForm").validate();
});

此处jQuery validate documentation

...问候

答案 2 :(得分:0)

感谢@Sparky,我将使用我从头开始编写的jQuery Validation Plugin实例: http://docs.jquery.com/Plugins/Validation