如何使用URL预填充wufoo字段?

时间:2016-05-08 16:36:06

标签: javascript html forms wufoo

似乎Wufoo有一个bug,因为我无法使用url预填充嵌入式Wufoo表单的字段。我使用的是javascript嵌入方法,您可以使用'defautValues'选项进行初始化。

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

我尝试了“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://之外是否还有其他解决方法(对我来说这不是一个非常好的解决方法)?

此问题已在此处提出:Why cant I add a URL as a prefilled Wufoo field entry?但由于没有回答,我想我会问一个更详细的问题,并举例说明实际尝试代码。

2 个答案:

答案 0 :(得分:0)

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

def fix_wufoo_bug(url)
    url.gsub!(':/','://') if url.match(/https?:\/\//).nil?
    return url
end

答案 1 :(得分:0)

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

  

感谢您与我们联系。很抱歉听到您遇到此问题。   URL mods可以使用/,但如果你把多个放在一起,它   只能显示第一个。对不起那个坏消息。   我担心即使你这样做也没有办法解决这个问题   使用其他字段,例如单行文本字段。

     

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

     

最佳,

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