表格提交和重新表格

时间:2012-11-23 10:05:02

标签: javascript jquery html validation recaptcha

此代码有什么问题?

 $(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) {

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使用

进行所有验证后,您可以取消绑定
$('#my_form').unbind('submit');

然后使用

定期提交
$('#my_form').submit();

答案 1 :(得分: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();
        }
    })
});