我将Recaptcha实施到Silverstripe,似乎有效。 唯一的问题是,公式和验证码代码位于页面的最末端,如果输入错误的代码,页面会重新加载并跳回到顶部,以便用户看不到公式和验证码了。
如何在输入错误的验证码后使窗口不滚动到顶部?
答案 0 :(得分:4)
由于HTTP规范不允许包含锚标记的服务器端重定向,因此您需要使用JavaScript来实现此目的。由于该字段在标准SilverStripe表单呈现中使用验证消息突出显示,因此您可以使用它来确定提交的表单再次加载后字段的状态。
jQuery(document).ready(function() {
var captchaEl = jQuery('#MyCaptcha');
if(captchaEl.find('.message.required').length) {
window.scrollTo(0, captchaEl.scrollTop());
}
});