Page 1 of 1

Formbuilder anchor how to?

Posted: Sun Sep 06, 2020 8:28 pm
by andrewvideouk
I have form which is located on the bottom of the page. User fills the form and hit the send button, if it has errors the page loads again but at the top, the user has to scroll down to the form in order to see the error message.

I did try doing something like this but the error messages don't show after send. But the anchor worked.

I know this messy code. I couldn't work out to escape quotes. I am new to coding. :)

Code: Select all

{capture assign='replaceurl'}#formjump" class{/capture}
 {capture assign='findurl'}/" class{/capture}
           {capture assign='contactform'} 
           <div id="formjump">
           {FormBuilder|replace:$findurl:$replaceurl form='sv_contact_form'}
           </div>
{/capture}    
The form template I am using

Code: Select all

<!-- Source: www.rolftjassens.com/blog/formbuilder-template-and-stylesheet -->
{* Based on the default FormBuilder pure CSS template *}
<__script__ type="text/javascript">
function fbht(htid)
{
	var fbhtc=document.getElementById(htid);
	if (fbhtc)
	{
		if (fbhtc.style.display == 'none') { 
			fbhtc.style.display = 'inline';
		} else {
			fbhtc.style.display = 'none';
		}
	}
}
</__script>

{$fb_form_header}

{if $fb_form_done == 1}
	{* +++++ Displaying Submission Errors +++++ *}
	{if isset($fb_submission_error) && $fb_submission_error}
		<div class="error_message">{$fb_submission_error}</div>
		{if isset($fb_show_submission_errors) && $fb_show_submission_errors}
			<div class="error">
			<ul>
			{foreach from=$fb_submission_error_list item=thisErr}
				<li>{$thisErr}</li>
			{/foreach}
			</ul>
		</div>
		{/if}
	{/if}
{else}
	{* +++++ Show The Form Itself +++++ *}
	{$fb_form_start}
	{$fb_hidden}
	<div{if $css_class != ''} class="{$css_class}"{/if}>
	{if $total_pages gt 1}<span>{$title_page_x_of_y}</span>{/if}
	{foreach from=$fields item=entry}
		{if $entry->display == 1}
			{strip}
			{if $entry->needs_div == 1}
				<div
				{if $entry->required == 1 || $entry->css_class != '' || $entry->valid == 0} class="
					{if $entry->required == 1}required{/if}
					{if $entry->css_class != ''} {$entry->css_class}{/if}
					{if $entry->valid == 0} fb_invalid{/if}
					"
				{/if}
				>
			{/if}

			{if $entry->hide_name == 0}
				<label{if $entry->multiple_parts != 1} for="{$entry->input_id}"{/if}>
					{if $entry->valid == 0}<span class="formbuilder_text_error">{/if}
						{$entry->name}{if $entry->required_symbol != ''}&nbsp;{$entry->required_symbol}{/if}
					{if $entry->valid == 0}</span>{/if}
				</label>
			{/if}

			{if $entry->multiple_parts == 1}
				{section name=numloop loop=$entry->input}
					{if $entry->label_parts == 1}
						<div>{$entry->input[numloop]->input}&nbsp;{$entry->input[numloop]->name}</div>
					{else}
						{$entry->input[numloop]->input}
					{/if}
					{if isset($entry->input[numloop]->op) && $entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}
				{/section}
			{else}
				{if $entry->valid == 0}<div class="formbuilder_field_error">{/if}
					{if $entry->smarty_eval == '1'}{eval var=$entry->input}{else}{$entry->input}{/if}
				{if $entry->valid == 0}</div>{/if}
			{/if}

			{if $entry->helptext != ''}
				&nbsp;<a href="javascript:fbht('{$entry->field_helptext_id}')"><img src="modules/FormBuilder/images/info-small.gif" alt="Help" /></a>
				<span id="{$entry->field_helptext_id}" style="display:none" class="fbr_helptext">{$entry->helptext}</span>
			{/if}

			{if $entry->needs_div == 1}</div>{/if}
			{/strip}
		{/if}
	{/foreach}
	{if $has_captcha == 1}
	<div>
		{if isset($captcha_error) && $captcha_error}<span class="formbuilder_text_error">{/if}
			<label>Spam protection {$entry->required_symbol}</label>
		{if isset($captcha_error) && $captcha_error}</span>{/if}
		<div>
			{$title_captcha}<br />
			<br />
			{if isset($captcha_error) && $captcha_error}<span class="formbuilder_field_error">{/if}
				{$graphic_captcha}<br />
				<br />
				{$input_captcha}
			{if isset($captcha_error) && $captcha_error}</span>{/if}
		</div>
	</div>
	{/if}
	{if isset($prev) && $prev}
		<div><label>&nbsp;</label>{$prev}</div>
	{/if}
	<div><label>&nbsp;</label>{$submit}</div>
	</div>
{$fb_form_end}
{/if}
{$fb_form_footer}
Is there anyway add it to the form template or has anyone have a tempate with a anchor builtin.

Cheers.

Re: Formbuilder anchor how to?

Posted: Sun Sep 06, 2020 9:53 pm
by velden
The search function of the forum is rather useful sometimes ;-)

viewtopic.php?f=7&t=75328

Re: Formbuilder anchor how to?

Posted: Wed Sep 09, 2020 9:18 am
by andrewvideouk
Thank you I did looked at that post before. Couldnt get to work. But try again and got it to work. I think I had a some Cache problem or I was very tied that night.