首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义表单验证表单

自定义表单验证表单
EN

Stack Overflow用户
提问于 2011-11-03 16:33:27
回答 3查看 1.2K关注 0票数 2

在提交表单之前,我想验证几个输入,我正在这样做

代码语言:javascript
复制
$(document).ready(function(){
    $('#form_arc_packages').submit(function(e){ /*should i use focus or similar, here?*/
        e.preventDefault();
        if(validarFormulario()==true){
            $('#form_arc_packages').submit(); /*Am i starting an infinite loop, here?*/
        }
    });
});

哪里

代码语言:javascript
复制
function validarFormulario(){       
        var valido = true;
        $('.errorCanc').slideUp();
        var fecha1=$('#date1').val();
        var fecha2=$('#date2').val();
        var area1=$('#area1').val();
        var area2=$('#area2').val();

        if (fecha1.length < 1){     $('#date1').next('.errorCanc').slideDown();     valido = false;     }
        if (fecha2.length < 1){  $('#date2').next('.errorCanc').slideDown();        valido = false;     }
        if (area1.length < 1){  $('#area1').next('.errorCanc').slideDown();     valido = false;     }   
        if (area2.length < 1){  $('#area2').next('.errorCanc').slideDown();     valido = false;     }   

        return valido;
}

现在只是检查输入的长度,但问题是表单不会被提交(即使设置了所有输入并且使用console.log,我也要确保validarFormulario返回true),

编辑

就像这样:

代码语言:javascript
复制
$(document).ready(function(){
        $('#form_arc_packages').submit(function(e){ 
            if(validarFormulario()==true){
                $('#form_arc_packages').submit(); 
            }else{
                //Post didn't pass validation, so prevent posting
                e.preventDefault(); return false;
            }
        });
});

在火狐中似乎工作得很好,但例如,在IE7中,它(用slideDown)显示错误,然后静态提交表单……-EDIT-忽略这一点,这是因为我使用的console.log()。工作正常。

我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-03 16:55:57

把它改成这个...

代码语言:javascript
复制
$(document).ready(function(){
    $('#form_arc_packages').submit(function(e){        
        if(validarFormulario()==false){
            e.preventDefault();
        }            
    });
});
票数 1
EN

Stack Overflow用户

发布于 2011-11-03 16:41:52

e.preventDefault();阻止u,将其更改为最后一行。

票数 1
EN

Stack Overflow用户

发布于 2011-11-03 16:54:34

我认为你总是在阻止默认操作,只有在你没有通过验证的情况下才应该阻止它:

代码语言:javascript
复制
$(document).ready(function(){
    $('#form_arc_packages').submit(function(e){ /*should i use focus or similar, here?*/      
        if(validarFormulario()==true){
            $('#form_arc_packages').submit(); /*Am i starting an infinite loop, here?*/
        }else{//Post didn't pass validation, so prevent posting
             return false;
        }
    });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7991996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档