0

Wufoo 似乎有一个错误,因为我无法使用 url 预填充嵌入的 Wufoo 表单的字段。我正在使用可以使用'defautValues'选项初始化的 javascript 嵌入方法。

不幸的是,如果我用 url 初始化一个字段(例如'defaultValues':'Field1=https://youtube.com':),Wufoo 会从 url 中删除 1 个斜杠,这使其无效。

我尝试对 url 进行“urlencoding”(例如'defaultValues':'Field1=https%3A%2F%2Fyoutube.com':),但随后 wufoo 产生错误并且不显示表单。

这是一个示例表格,您可以尝试自己查看行为:

<div id="wufoo-mrmifr316ya92y">
Fill out my <a href="https://democratech.wufoo.com/forms/mrmifr316ya92y">online form</a>.
</div>
<script type="text/javascript">var mrmifr316ya92y;(function(d, t) {
var s = d.createElement(t), options = {
'userName':'democratech',
'formHash':'mrmifr316ya92y',
'autoResize':true,
'height':'259',
'async':true,
'host':'wufoo.com',
'defaultValues':'Field1=https://youtube.com', //removes 1 slash (https:/youtube.com)
//'defaultValues':'Field1=https%3A%2F%2Fyoutube.com', //produces an error
'header':'hide',
'ssl':true};
s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'www.wufoo.com/scripts/embed/form.js';
s.onload = s.onreadystatechange = function() {
var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
try { mrmifr316ya92y = new WufooForm();mrmifr316ya92y.initialize(options);mrmifr316ya92y.display(); } catch (e) {}};
var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
})(document, 'script');</script>

你确认错误吗?除了从现场删除之外还有其他解决方法https://(这对我来说不是一个很好的解决方法)?

这个问题已经在这里问过:为什么我不能将 URL 添加为预填充的 Wufoo 字段条目?但由于没有回答,我想我会用一个例子问一个更详细的问题来实际尝试代码。

4

2 回答 2

0

这不是真正的答案,而是在某些情况下可以工作的解决方法。如果您正在使用 wufoo webhook 通知,您可以对预填充的 wufoo 表单发送给您的“修剪过的” url(只有 1 个斜线的那个)进行后处理,以确保在将 url 保存到数据库中之前添加第二个斜线(要不然)。为此,我使用如下 ruby​​ 函数:

def fix_wufoo_bug(url)
    url.gsub!(':/','://') if url.match(/https?:\/\//).nil?
    return url
end
于 2016-05-08T16:56:23.527 回答
0

刚刚收到 Wufoo 技术支持的答复(周日的问题很快!):

感谢您伸出援手。很抱歉听到您对此有疑问。URL mods 可以与 / 一起使用,但如果你将多个放在一起,它只能显示第一个。很抱歉那个坏消息。即使您要使用不同的字段(例如单行文本字段),恐怕也没有解决方法可以使该工作正常进行。

您可以做的只是使用 www.youtube.com 而不是http://youtube.com预定义该字段。这样你仍然可以添加网站,但它不会有 https。对不起,你不能在这里做你想做的事。如果您有任何其他问题,请告诉我们。

最好的,

所以看起来这确实是一个错误,并且没有正确的方法来做到这一点。

于 2016-05-08T17:04:00.017 回答