我正在使用免费的Securimage软件包在我的注册表单中进行验证码验证。
我正在使用jScript / AJAX / PHP在用户输入代码时检查代码,并在输入框旁边输出“不正确”或“正确”,如果它留空或不正确则给它一个红色边框。 / p>
这里的问题是:如果用户首先输入正确的密钥,那么由于某种原因点击“选择另一个图像”网址,密钥将会改变,但输入框不会改变,因此不会被验证,这可能会使用户误以为在实际更改时输入了正确的密钥,并且应该重新输入。
当在验证码输入框(keyup)中输入内容或完成输入(模糊)时,将调用检查验证码功能。代码看起来像这样:
$(document).ready(function()
{
var chckcaptcha = function()
{
var captcha = encodeURIComponent($("#captcha").val());
$.ajax(
{
type: "POST",
url: "lib_ajax/somescript.php",
data: "captcha="+ captcha,
success: function(msg_captcha)
{
$("#status_captcha").ajaxComplete(function(event, request, settings)
{
// ... some validation code here
});
}
});
}
$("#captcha").bind('keyup',chckcaptcha)
$("#captcha").blur(chckcaptcha);
});
图片:
<img src="/lib_class/securimage/securimage_show.php" alt="CAPTCHA Image" name="captcha_img" width="100%" height="100" id="captcha_img" />
刷新网址:
<a href="#" onclick="document.getElementById('captcha_img').src = '/lib_class/securimage/securimage_show.php?' + Math.random(); return false">refresh image</a>
我需要一种方法来在单击该URL时或在创建新图像时调用jScript中的check captcha函数。我完全不知道如何做到这一点。
我已尝试(在许多其他方面)将其添加到jScript:
$("#captcha_img").change(chckcaptcha);
但这没有帮助。任何解决方案的提示都将非常感谢!
答案 0 :(得分:0)
您可以定义chckcaptcha函数和在文档就绪处理程序外刷新图像的函数,然后在刷新图像时连续调用它们吗?
<a href="#" id="refresh-link">refresh image</a>
...
function chckcaptcha()
{
var captcha = encodeURIComponent($("#captcha").val());
$.ajax(
{
type: "POST",
url: "lib_ajax/somescript.php",
data: "captcha="+ captcha,
success: function(msg_captcha)
{
$("#status_captcha").ajaxComplete(function(event, request, settings)
{
// ... some validation code here
});
}
});
}
$(document).ready(function()
{
$("#refresh-link").click(function() {
document.getElementById('captcha_img').src = '/lib_class/securimage/securimage_show.php?' + Math.random();
chckcaptcha();
});
$("#captcha").bind('keyup',chckcaptcha);
$("#captcha").blur(chckcaptcha);
});
答案 1 :(得分:0)
上述答案并不奏效,但给了我一个解决方案的想法。这对我有用......
功能:
function refreshImage()
{
// New image
document.getElementById('captcha_img').src =
'/lib_class/securimage/securimage_show.php?' + Math.random();
// New validation
chckcaptcha();
}
刷新链接:
<a href="#" id="refresh-link" onClick="refreshImage(); return false">refresh image</a>