У меня есть форма на странице, для которой требуется капча, если в базе данных установлен атрибут заблокированного пользователя.
$("#expressform").submit(function() {
if($("#op").val() == "")
return false;
if($("#tagbar").val() == "")
return false;
$.post("getallowed.php", function(data) {
if(data == "true")
submitNormal();
else if(data == "false"){
displayCaptcha();
}
});
return false;
});
Если пользователь не разрешен, вызывается функция displayCaptcha вместо просто отправки формы.
function displayCaptcha(){
$.post("expresscaptcha.php", function(data) {
var string = data;
$("#expressformdiv").html(string);
Recaptcha.create("xxxxxxxxxxx", "captcha",
{
theme: "red",
callback: Recaptcha.focus_response_field
}
);
});
}
Эта функция публикует скрипт php, который возвращает новый тип формы, который возвращает HTML для новой формы с id expressformcaptcha. Вот скрипт php.
<?php
echo <<<_END
<form id="expressformcaptcha">
//other form elements
<div id="captchadiv"><div id="captcha"></div></div>
</form>
_END;
?>
Все это прекрасно работает, отображается капча и т. Д. Однако предупреждение в следующем никогда не вызывается. Почему?
$("#expressformcaptcha").submit(function() {
alert("FORM SUBMITTED");
});
Это как-то связано с тем, что там есть капча, которая винт с jquery? При отправке формы вместо предупреждения страница просто обновляется.