使用jquery问题验证和提交表单

时间:2013-11-14 06:37:49

标签: javascript php jquery ajax forms

我正在尝试使用j-query提交表单,在提交之前应该进行一些验证,并且我已经使用ajax验证了capcha。没有ajax验证,一切正常。

<form id="RegistrationForm" name="RegistrationForm" method="post" action="save.php" >

jquery代码

$('#RegistrationForm').submit(function(){
//some validation goes here
if($('#captcha').val() != '')
    { 
        var captcha = $('#captcha').val();
        $.ajax({
            url:'validate.php',
            type:'POST',
            data:{captcha:captcha},
            success: function(data){
                if(data == 'false')
                {
                    alert('Wrong Captcha is typed!');
                    return false;
                }
                else
                {
                                alert('enter');
                document.getElementById("RegistrationForm").submit();   
                                return true;

                }

              }
            });
    }
});`

在提交表单时显示警告“输入”但表单未提交。 提前谢谢。

4 个答案:

答案 0 :(得分:0)

您可能需要将变量更改为JSON,以了解您是如何从php中进行检索的。如果那不是解决方案,请尝试

if (data){

}else{

}

仅供参考,这不是jquery验证。 Jquery验证是一个库设置,以确保在提交之前正确设置正确的字段。如果验证码在提交后是正确的,则会对您所做的事情进行测试。

答案 1 :(得分:0)

尝试这样的事情

        $(function(){
            $('#RegistrationForm').submit(function(){
                if($('#captcha').val() != ''){ 
                    var captcha = $('#captcha').val();
                    $.ajax({
                        url:'validate.php',
                        type:'POST',
                        async:false,
                        data:{captcha:captcha},
                        success: function(response){
                            if(response == 'false')
                            {
                                alert('Wrong Captcha is typed!');
                                return false;
                            }
                            else
                            {
                                alert('enter');
                                return true;

                            }

                      }
                  });
                }
            });`

        })

答案 2 :(得分:0)

尝试制作ajax同步

 $.ajax({
        url:'validate.php',
        type:'POST',
        async: false,
        data:{captcha:captcha},
        success: function(data){
            if(data == 'false')
            {
                alert('Wrong Captcha is typed!');
                return false;
            }
            else
            {
                            alert('enter');
            document.getElementById("RegistrationForm").submit();   
                            return true;

            }

          }
        });

答案 3 :(得分:0)

我认为问题是当ajax请求返回其他值而不是false时,每次再次调用submit时,我认为每次调用提交函数,但无法成功提交。因为它递归调用提交函数。

$('#RegistrationForm').submit(function(){
//some validation goes here
if($('#captcha').val() != '')
    { 
        var captcha = $('#captcha').val();
        $.ajax({
            url:'validate.php',
            type:'POST',
            data:{captcha:captcha},
            success: function(data){
                if(data == 'false')
                {
                    alert('Wrong Captcha is typed!');
                    return false;
                }
                else
                {
                     alert('enter');   
                }

              }
            });
    }
});