1

我对 Silverstripe 实施了 Recaptcha,它似乎有效。唯一的问题是公式和验证码位于页面的最后,如果您输入错误的代码,页面会重新加载并跳回顶部,这样用户就不会看到公式和验证码了。

输入错误的验证码后如何使窗口不滚动到顶部?

4

1 回答 1

4

由于 HTTP 规范不允许包含锚标记的服务器端重定向,因此您需要使用 JavaScript 来完成此操作。由于该字段在标准 SilverStripe 表单呈现中使用验证消息突出显示,因此您可以使用它来确定再次加载提交的表单后该字段的状态。

jQuery(document).ready(function() {
    var captchaEl = jQuery('#MyCaptcha');
    if(captchaEl.find('.message.required').length) {
        window.scrollTo(0, captchaEl.scrollTop());
    }
});
于 2012-10-16T15:41:11.823 回答