Sitecore 7-在弹出模式中为营销人员使用Web表单
我正在使用已安装的营销人员Web表单模块和该网站的fancybox插件(该网站使用的是fancybox 1.3.4版,我无法更新该版本,否则可能会破坏该网站上使用该插件的其他功能)在Sitecore 7.2网站上设置网关表单 这就是表单的工作原理:用户单击页面上的链接,这将打开一个弹出窗口,其中包含一个他们必须填写的表单,然后才能访问下载 到目前为止,我已经完成了一些工作,当在页面上单击链接时,fancybox模式将打开并显示WFFM表单 以下是执行此操作的jQuery:Sitecore 7-在弹出模式中为营销人员使用Web表单,sitecore,fancybox,sitecore7.2,web-forms-for-marketers,Sitecore,Fancybox,Sitecore7.2,Web Forms For Marketers,我正在使用已安装的营销人员Web表单模块和该网站的fancybox插件(该网站使用的是fancybox 1.3.4版,我无法更新该版本,否则可能会破坏该网站上使用该插件的其他功能)在Sitecore 7.2网站上设置网关表单 这就是表单的工作原理:用户单击页面上的链接,这将打开一个弹出窗口,其中包含一个他们必须填写的表单,然后才能访问下载 到目前为止,我已经完成了一些工作,当在页面上单击链接时,fancybox模式将打开并显示WFFM表单 以下是执行此操作的jQuery: jQuery.noCo
jQuery.noConflict();
(function($) {
$(document).ready(function() {
// Open the gateway form into a fancybox modal
//check to see if there is a gateway form link on the page
if ($(".protected-item").length > 0) {
//if so, then we want to target the click event
$('.protected-item').click(function(event) {
event.preventDefault();
//Get the value of the href of the link since this url will contain the page with the gateway form
var url = $('.protected-item').attr('href');
//open the page with the gateway form in the fancybox modal
$.fancybox({
'autoDimensions': true,
'height': 400,
'width': 400,
'scrolling': 'no',
'href': url,
'autoScale': true,
});
});
}
});
})(jQuery);
我所做的是在Sitecore中创建一个通用页面(我调用了网关表单测试页面),并将测试网关表单插入其中。然后,在我想展示gateway表单的页面上,我将一些文本(“单击此处”)链接到gateway表单测试页面
问题是,当点击WFFM表单的提交按钮时,页面会将我发送到表单所在的url(即domainname/OtherPages/GatewayFormTestPage.aspx),而不是仅仅重新加载fancybox窗口并显示成功消息或错误消息(如果没有填写所有字段)
我尝试将fancybox模式的类型设置为“iframe”,但所做的只是呈现一个空的弹出窗口(fancybox内容块中也没有显示任何内容——我检查了Chrome开发工具中的元素)
是否有一种方法可以将WFFM表单包装在iframe中,以便在单击“提交”时避免转到另一个页面?我希望用户始终保持在弹出模式中
谢谢,我知道这可能是一个复杂的过程,我希望我能选择一个更好的解决方案,但这是我必须解决的问题 我认为使用iframe不是完成任务的正确方法。最好使用AJAX请求而不是iframe 您应该在表单项上选中“IsajaxMVC表单”,以便只重新加载表单而不进行页面回发。它将允许您在不完全重新加载页面的情况下获得表单更新 如果您使用的是WebForms(不是MVC),那么您可以将WFFM表单包装到更新面板中。(对于性能和透明度来说不是很好)
关于使用WFFM的提示:您应该仅在由营销人员管理字段/操作的情况下使用WFFM。您不需要将其用于站点上的所有表单。确保这不是您的情况。我认为使用iframe不是完成任务的正确方法。最好使用AJAX请求而不是iframe 您应该在表单项上选中“IsajaxMVC表单”,以便只重新加载表单而不进行页面回发。它将允许您在不完全重新加载页面的情况下获得表单更新 如果您使用的是WebForms(不是MVC),那么您可以将WFFM表单包装到更新面板中。(对于性能和透明度来说不是很好)
关于使用WFFM的提示:您应该仅在由营销人员管理字段/操作的情况下使用WFFM。您不需要将其用于站点上的所有表单。确保这不是你的情况。我同意WFFM不是这里的最佳选择,但决定权不在我——其他人做出了选择,事情就是这样:\n我确实设法让iframe工作了——我需要从fancybox的插件中包含另一个js文件。我不想再为它大惊小怪了,因为计划已经到位,我必须用我所拥有的工作。不过,我把你的评论标记为答案,因为这些仍然是不错的选择--如果我在这个项目中有更多发言权的话。谢谢你的建议,我没有将mvc wffm表单插入更新面板,我同意WFFM不是这里的最佳选择,但决定权不在我身上——其他人做出了选择,事情就是这样:\n我确实设法让iframe工作了——我需要从fancybox的插件中包含另一个js文件。我不想再为它大惊小怪了,因为计划已经到位,我必须用我所拥有的工作。不过,我将您的评论标记为答案,因为这些仍然是很好的选择——如果我在这个项目中有更多发言权的话。谢谢您的建议,我没有将mvc wffm表单插入更新面板,并且它可以工作。