JQTransform和reCAPTCHA玩得不好

时间:2012-01-23 04:31:14

标签: recaptcha jqtransform

问题:

我正在一个网站上工作,我想使用JQTransform快速获得一个好看的联系页面。另外,为了避免客户垃圾,我决定添加reCAPTCHA。我遇到了文本框的JQTransform样式问题,导致reCAPTCHA中的元素被替换。

这似乎是一种简单修复的问题类型,但我已经挣扎了一段时间。

我尝试了解决方案: JQTransform - Exclude an element from styling?

这并没有解决这个问题,也没有其他一些问题得到解决方法"你如何让JQTransform停止JQTransforming元素?"问题

产生可用结果的是添加:

    <script type="text/javascript">
            var RecaptchaOptions = {
                theme: 'clean'
            };
    </script>

这会将reCAPTCHA更改为在表单中看起来更好的格式。但它留下了2个文本框样式。一个是普通的默认文本框,另一个是JQTransform圆角,悬停/焦点文本框上浅蓝色。

然后我补充道:

    $(function () {
        $( "#recaptcha_response_field" ).attr('style', 'border: 0px; padding: 5px; solid #3c3c3c; width: 302px;');
    });

这改变了reCAPTCHA对文本框的风格。现在,文本框看起来像表单的其他输入。我对结果非常满意。

(我知道你现在问:&#34;那你为什么来这里?&#34;)

问题:

有没有办法让JQTransform通过将它们包装在div中来忽略<form></form>中的任何输入,复选框等?

如果我希望将来可以将JQTransform与其他插件一起使用,我希望能够将它放到像div这样的div中:

    <div class="donot-jqtransform">
        <?php
            echo printCaptchaPlugin();
        ?>
    </div>

    <div class="donot-jqtransform">
        <%= PrintPasswordValidationPlugin() >
    </div>

这样我就不必担心代码会带来什么样的形式,它会起作用并且看起来像预期的那样。这首先是抽象的想法,对吗?因此,如果我想用另一个选项切换reCAPTCHA,我所做的就是替换printCaptchaPlugin()函数中的代码,对于使用它的任何形式,所有代码都应该是培根(好)。

2 个答案:

答案 0 :(得分:0)

我已经建立了一个新的库 - csTransPie - 基于jqtransform - jqtransform是一个很棒的库,但它真的有很多问题

我正在创建常规输入字段(css样式),你不会遇到这些问题

https://github.com/pkoretic/csTransPie

这是一项正在进行中的工作,但即使现在它也比jqtransform更好(超过一半的css被重写,许多错误解决了,干净的css ......)

现在你只需要一个类就可以在每个元素上使用它!

欢迎所有建议!

答案 1 :(得分:0)

很抱歉,如果这是一个糟糕的表格,可以填写一个旧的回答问题,但我发现这个问题,因为我遇到了同样的问题。

我不想在我的项目中添加另一个库,所以我修改了jqtransform.js以在TextArea处理程序中包含这一行(221-ish行)

if (textarea.parents().hasClass('jqTransformIgnore')) { return; }

然后我只需要将jqtransformIgnore类添加到recaptcha div ...

<div class="g-recaptcha jqTransformIgnore" data-sitekey="blahblahblah"></div>

......这就是诀窍!