0

このコードの何が問題になっていますか?

 $(function() {
            $('#my_form').submit(function(e) {
                e.preventDefault();
                recaptcha_response_field = $('input#recaptcha_response_field').val();
                recaptcha_challenge_field = $('input#recaptcha_challenge_field').val();

                $.post('controller.php', {recaptcha_response_field : recaptcha_response_field, recaptcha_challenge_field : recaptcha_challenge_field}, function(data) {
                if(data == 0) {
                    alert('no');
                } else {
                    alert('submit')
                    $('#my_form').submit();
                }
            }); 
            })
        });

私は自分のフォームで recaptcha を使用しています。ユーザーがキャプチャ コードを正しく入力すると、これらのコード行が実行されます

alert('submit')
$('#my_form').submit();

とても太っています。問題は、フォームが送信されないことです。このコード行が再度実行されると思います

$('#my_form').submit(function(e) {

助言がありますか ?

4

2 に答える 2

1

すべての検証の後に、を使用してバインドを解除できます

$('#my_form').unbind('submit');

その後、定期的に使用して送信します

$('#my_form').submit();
于 2013-02-06T13:09:25.570 に答える
0

私はまだこれをテストしていませんが、これを試してください。.submit関数が再びトリガーされているのは正しいです。

$(function() {
    $('#my_form').submit(function(e) {
        'use strict';

        var recaptcha_response_field = $('input#recaptcha_response_field').val(),
            recaptcha_challenge_field = $('input#recaptcha_challenge_field').val(),
            submitForm = true;

        $.post('controller.php', {
                recaptcha_response_field : recaptcha_response_field,
                recaptcha_challenge_field : recaptcha_challenge_field
            }, function(data) {
                if(data == 0) {
                    submitForm = false;
                }
        }); 

        if(!submitForm) {
            e.preventDefault();
        }
    })
});
于 2012-11-23T10:08:37.833 に答える