0

我已经开始使用 Adob​​e Business Catalyst,并且正在使用 BC 生成的 Web 表单调整现有的 HTML Web 表单。即使我在Adob​​e 社区论坛上阅读此内容后添加了 FirstName 和 LastName 文本字段,说明这对于 Adob​​e CRM 是强制性的,但我仍然不断收到错误:ERROR: An error occurred. Your web form must capture customer name and email address. Please fix this issue and re-insert your web form on your web page.这是当前表单:

<form name="catwebformform81533" method="post" onsubmit="return checkWholeForm81533(this)" 
            enctype="multipart/form-data" action="http://domain.businesscatalyst.com/FormProcessv2.aspx?WebFormID=74594&OID={module_oid}&OTYPE={module_otype}&EID={module_eid}&CID={module_cid}" id="form">
            <div class="span4">
<input type="text" name="FirstName" id="FirstName" class="cat_textbox" maxlength="255" value="ingevuld"/> 
<input type="text" name="LastName" id="LastName" class="cat_textbox" maxlength="255" value="ingevuld" />
                <div class="field">
                    <label>Name:</label>
                    <input type="text" name="name" value="" id="name"/>
                </div>
                <div class="field">
                    <label>Email:</label>
                    <input type="text" name="email" value="" id="email" />
                </div>
                <div class="field">
                    <label>Subject:</label>
                    <input type="text" name="subject" value="" name="CAT_Custom_343661" id="CAT_Custom_343661" />
                </div>
            </div>

            <div class="span4">
                <div class="field">
                    <label>Message:</label>
                    <textarea rows="7" name="CAT_Custom_343660" id="CAT_Custom_343660" 
                    onkeydown="if(this.value.length>=4000)this.value=this.value.substring(0,3999);"></textarea>
                </div>
                <div class="field">
                {module_recaptcha}
                </div>
                <div class="submitbutton clearfix">
                    <input type="submit" value="Send Your Message" class="m-btn red rnd right"/>
                </div>
            </div>
                <script type="text/javascript" src="http://domain.businesscatalyst.com/CatalystScripts/ValidationFunctions.js">
                </script><script type="text/javascript">
//<![CDATA[
var submitcount81533 = 0;function checkWholeForm81533(theForm){var why = "";
if (theForm.email) why += checkEmail(theForm.email.value);
if (theForm.CAT_Custom_343661) why += isEmpty(theForm.CAT_Custom_343661.value, "Subject");
if (theForm.CAT_Custom_343660) why += isEmpty(theForm.CAT_Custom_343660.value, "Message");
if(why != ""){alert(why);return false;}if(submitcount81533 == 0){submitcount81533++;
theForm.submit();return false;}else{alert("Form submission is in progress.");return false;}}
//]]>
</script>
            </form>

我为 FirstName 和 LastName 字段添加了值,并用 CSS 隐藏它们只是为了安抚 Adob​​e 必填字段。虽然还没有喜悦。有什么想法我应该调整吗?

4

3 回答 3

1

似乎我必须更改电子邮件地址的 ID 和该字段的名称:

<input type="text" name="EmailAddress" value="" id="EmailAddress"  />

连同此验证

script type="text/javascript" src="http://domain.businesscatalyst.com/CatalystScripts/ValidationFunctions.js"></script>
                <script type="text/javascript">
//<![CDATA[
var submitcount16251 = 0;function checkWholeForm16251(theForm){var why = "";
if (theForm.EmailAddress) why += checkEmail(theForm.EmailAddress.value); 
if (theForm.FirstName) why += isEmpty(theForm.FirstName.value, "First Name");
if (theForm.LastName) why += isEmpty(theForm.LastName.value, "Last Name"); 
if(why != ""){alert(why);return false;}if(submitcount16251 == 0){submitcount16251++;
theForm.submit();
return false;}else{alert("Form submission is in progress.");return false;}}
//]]>
</script>

全名

您还可以将名字与姓氏结合起来,这样您就不需要两个单独的字段,我几乎不会将其用于客户。请参阅此处的链接。输入字段将是

<input type="text" name="FullName" id="FullName" class="cat_textbox" maxlength="255" />

身份证

当我使用来自两个生成的表单的 ID 时,我还调整了不同的标签 ID 号。这并不是真正必要的,因为您要求 HTML 添加的一种表单会在您每次执行此操作时为所有几个标签分配新的 id。但是验证更改和电子邮件标签更改确实有所帮助。这确保在同一页面上加载了谢谢。还要确保WebFormID它与后端中现有的已创建 Web 表单相关!

系统确认页面

只有我加载了几个 404 用于加载的样式表和 javascript,并且加载了一个没有样式的页面。这是因为系统确认页面试图加载一些不存在的样式表。最后通过创建一个新模板来修复并不难。

于 2014-07-21T08:40:06.520 回答
0

只需从您的代码中删除这两行

if (theForm.FirstName) why += isEmpty(theForm.FirstName.value, "First Name");
if (theForm.LastName) why += isEmpty(theForm.LastName.value, "Last Name");

所以BC不会检查他们是否被填满

于 2016-08-22T12:32:32.393 回答
-1

如果您想创建一个没有电子邮件地址的表单,您可以使用此代码,至少最终用户不会看到它。您所做的只是预先填充电子邮件地址表单字段,然后使用可见性隐藏它:隐藏;。因为他们里面有一个电子邮件地址,所以它通过了表单验证。要将其放置在您的输入标签中:

type="text" style="visibility: hidden" name="EmailAddress" value="me@hotmail.com" id="EmailAddress"

于 2014-08-11T16:12:27.487 回答