我想通过AJAX提交表单时重置Google reCaptcha小部件,并发送一些输入错误或表单.我在同一页面上使用多个小部件,因此我明确地呈现这些小部件.
我的HTML代码:
<div class="g-recaptcha" id="recaptcha-1"></div>
<div class="g-recaptcha" id="recaptcha-2"></div>
...
<div class="g-recaptcha" id="recaptcha-20"></div>
Run Code Online (Sandbox Code Playgroud)
加载小部件
<script src="https://www.google.com/recaptcha/api.js?onload=reCaptchaCallback&render=explicit&hl=en" async defer></script>
<script>
var reCaptchaCallback = function() {
var elements = document.getElementsByClassName('g-recaptcha');
for (var i = 0; i < elements.length; i++) {
var id = elements[i].getAttribute('id');
grecaptcha.render(id, {
'sitekey' : 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
});
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
提交表格后:
var id = $('.g-recaptcha', form).attr('id');
grecaptcha.reset(id);
Run Code Online (Sandbox Code Playgroud)
表单是提交表单的实例.
当表格填写正确时,一切正常.但reCaptcha不会重置或重新加载.尝试这个grecaptcha.reset()但没有结果.
任何的想法?
我已经初始化砌体插件 - 工作正常,
比我销毁它的媒体宽度 <= 767px - 它被销毁了
但是当我回到媒体宽度 > 767px 并再次初始化砌体时,它不起作用。
为什么?
或者是否有其他解决方案可以关闭 masonry 插件,然后在某些事件中打开它?
这是我的代码:
var masonryData = {
isInitLayout: true,
isResizeBound: false,
itemSelector: '.item',
columnWidth: 300,
gutter: 20,
transitionDuration: '0.5s'
};
function initializeMasonry(masonryData){
if (jQuery().masonry) {
var masonryContainer = jQuery('.masonry').masonry(masonryData);
jQuery(masonryContainer).imagesLoaded(function(){
jQuery(masonryContainer).masonry(masonryData);
});
}
}
function destroyMasonry(){
if (jQuery().masonry) {
jQuery('.masonry').masonry();
jQuery('.masonry').masonry('destroy');
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用查询插件,所以我对 js 媒体查询使用匹配/不匹配方法:
$.Site.Match.smallScreen = function() {
...
destroyMasonry();
...
}
$.Site.Match.mediumScreen = function() {
...
initializeMasonry(masonryData);
...
}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助
我在MySQL DB中有表,其中包含两个字段user_id和score.此表是一种日志表,因此对于具有不同分数的一个user_id,可以有多行.如何才能从此表中获得得分最高的前10位用户?
我需要从'layout-'中删除元素开头的所有类
我尝试:
var regex = new RegExp('\b' + 'layout-' + '.*?\b', 'g');
$(el)[0].className = $(el)[0].className.replace(regex, '');
Run Code Online (Sandbox Code Playgroud)
但它不起作用.解决方案可以在jQuery中.任何的想法?