У меня есть форма на странице, которая требует капча, если в базе данных установлен атрибут заблокированного пользователя.
$("#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 для новой формы с идентификатором 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? При отправке формы вместо предупреждения страница просто обновляется.