繁体   English   中英

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

[英]validating and submitting form using jquery issue

我正在尝试使用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;

                }

              }
            });
    }
});`

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

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

if (data){

}else{

}

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

尝试这样的事情

        $(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;

            }

          }
        });

我认为问题是,每次您再次从commit调用时,ajax请求都返回false以外的值时,我想每次它都调用Submit函数时,但无法成功提交。 因为它以递归方式调用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');   
                }

              }
            });
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM