此代码有什么问题?
$(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) {
有什么建议吗?
答案 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();
}
})
});