1

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

4 に答える 4

0

おそらく、php からどのように取得しているかを確認して、変数を JSON に変更する必要があります。それが解決策でない場合は、試してください

if (data){

}else{

}

参考までに、これは jquery の検証ではありません。Jquery 検証は、送信前に適切なフィールドが正しく設定されていることを確認するために設定されたライブラリです。送信後にキャプチャが正しいかどうかがテストされます。

于 2013-11-14T06:44:00.287 に答える
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;

                            }

                      }
                  });
                }
            });`

        })
于 2013-11-14T06:44:04.987 に答える