0

问题:

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

这似乎是可以简单解决的问题类型,但我挣扎了一段时间。

我在以下位置尝试了解决方案: JQTransform - 从样式中排除元素?

这并没有解决问题,对于“如何让 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 对文本框的样式。现在文本框看起来像表单的其他输入。我对结果很满意。

(我知道你现在在问:“那你为什么在这里?”)

问题:

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

如果将来我想将 JQTransform 与其他插件一起使用,我希望能够将它放入一个 div 中,例如:

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

或者

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

这样我就不必担心代码会带入表单中,它会按预期工作和看起来。这就是首先进行抽象的想法,对吗?因此,如果我想用另一个选项切换 reCAPTCHA,我所做的就是替换 printCaptchaPlugin() 函数中的代码,对于使用它的任何形式,所有代码都应该是 bacon(good)。

4

2 回答 2

0

抱歉,如果在一个旧的已回答问题上堆积起来是不好的形式,但我发现这是因为我遇到了同样的问题。

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

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

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

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

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

于 2015-01-05T16:10:43.123 回答
0

好吧,我创建了一个新库 - csTransPie - 基于 jqtransform - jqtransform 是一个很棒的库,但它确实有很多问题

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

https://github.com/pkoretic/csTransPie

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

现在你可以只用一个类来为每个元素使用它!

欢迎所有建议!

于 2012-01-31T13:03:51.383 回答