如果用户在数据库中设置了阻止属性,我在页面上有一个需要验证码的表单。
$("#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脚本,该脚本返回一种新类型的表单,该表单返回带有id expressformcaptcha的新表单的html。这是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螺丝的验证码有关?提交表单而不是提醒时,页面只会刷新。