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

validating and submitting form using jquery issue

本文关键字:提交 表单 验证 jQuery 问题 使用      更新时间:2023-09-26

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

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

j查询代码

$('#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;
                }
              }
            });
    }
});`
提交表单

时,它显示警报"输入",但表单未提交。提前谢谢。

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

if (data){
}else{
}

仅供参考,这不是jquery验证。Jquery 验证是一个库,用于确保在提交之前正确设置正确的字段。提交后,将测试您所做的验证码是否正确。

尝试这样的事情

        $(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;
                            }
                      }
                  });
                }
            });`
        })

尝试使 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;
            }
          }
        });
我认为

问题是当ajax请求返回除false以外的其他值时,每次您再次从提交调用时,我认为每次它都调用提交函数,但无法成功提交。 因为它递归调用提交函数。

尝试

$('#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');   
                }
              }
            });
    }
});