Forms 2.0 - Better forms without code

Forms 2.0 - Better forms without code

[Please add your comments below to help build a strong case]

Since the FORMS 2.0 idea from Glen Lipka has long been lost, it's time to bring it back and get it on the agenda.  It only been raised as an issue for 3 years and more than 2 versions of this community.  Even one of recent ideas from the community for the Amazing Race Idea was for form improvements: Form Widgets!.

Basically Forms need to be come way easier without manipulation through code.  There are a lot of small improvements that could be made to the form functionality that would be a great benefit to clients without access to a web developer skill set.  

At one time or another, I have had marketers request most of the following list of form improvements:

  • support for HTML5 form elements
  • allow pre-population on a field by field basis as a form designer attribute
  • allow text fields to optionally concatenate the new value with the existing data
  • field masking for phone, sin number etc.
  • add real-time (onblur) validation, validation test conditions and  contextual error msgs
    • email regex,
    • min and max for numbers etc. 
    • phone with or without extention
    • domain name for spam exclusion - i.e. mickmouse@example.com a@a.com
    • alpha-only for names/text fields
    • Automatic formating for proper case including whitespace trimming
  • better positioning of the field label and error msg
  • more form layouts in terms of 2-3 columns layouts as well as fields that can span the columns
  • more control over the submit button:
    • its style/image
    • dynamic button text both before and after click text to make the form reusable on more that one landing page within the landing page editor
    • enable/disable submit based upon required fields/validation
  • provide more advanced type of controls:
    • date pickers,
    • sliders (range),
    • dropdowns (combobox) with icons, option groups etc.
    • better support for checkboxes/radio with multi-select 
  • dependant selections or skip logic i.e. country/state and surveys
  • geo-ip support for country/state
  • automatic detection and support for iframes to get parent parameters, adjust the form's target = _top etc.
  • better (dynamic) follow up options - new windows, dynamic redirect based upon other form fields, parameters or cookies
  • Allow fields from SFDC objects other than contact and lead

Forms have been one of the least attended to areas of Marketo; it has literally been years since any significant improvements have been made while the competition has not been standing still waiting.

Below is a small list for just from this version of community:
127 Comments
Anonymous
Not applicable
Thanks Rafael. Yes, at this point I've already maxed out the capabilities of CSS with the given classes. It's really the field or input specific classes and ID's that would be a huge help.

For instance, lets say you have a contact form and would like to have a checkbox at the bottom to sign up for emails. Yes, simple enough... but what if all of your labels are to the left and the signup copy is more than two words? Changing the width of  one li would change them all. There's no easy way to single out that one label or checkbox (if there is more than one checkbox) so that you can actually make a form that looks nice and is also useful. 



Rafael_Santoni1
Level 5
Ben,

You can use a bit of jQuery to modify only one of the "li" widths. If you have access to a jQuery developer, you can check for an "li" that contains a specific string, and you could either modify its CSS properties or you can actually destroy the "li" and re-create a new one that could be formed however you need it, including all it's content.

If you want to go through some more details, feel free to reach me at my personal email rafael at rafaelsantoni dot com. I can try to take a look at your page and take a stab at giving you a place to start making your mods.

Thank you,

Rafael

Anonymous
Not applicable
I think that if the answer to the question "do you have access to a jquery/javascript developer?" was yes, then there wouldn't be a problem modifying pretty much anything. I think the main point here is that we need to not have to ask that question anymore, at least not for these simple, normal, everyday things.
Rafael_Santoni1
Level 5
Veronica,

I agree 100%. However, for the time being, I am just trying to help a fellow Marketo user solve an immediate need until the platform supports those types of configurations instead of having to do customizations.

Thank you,

Rafael

Anonymous
Not applicable
Yes, I know, absolutely, and the fact we can support each other in the community is a fantastic thing! sorry to imply otherwise.

I think there's a certain level of frustration out there though that not only do Marketo tell you that you can just do it with javascript, they also then have a support policy that they do not support these customizations, so if you make the choice to go the coding route, you are literally on your own if you can't quite figure out how to make it work.

Which, again, means that its great that there are people like yourself out there willing to help others out 🙂

Brice_Dunwoodie
Level 4
I think we should form a picket line in front of the Marketo Summit in April and all march around with signs saying "We demand Forms 2.0". 🙂

The fact that they can't add some simple stop gaps like inline styles, ad hoc css class names and HTML ID attributes to the existing fields is just insulting. There's no way little things like that are difficult or time consuming. The company has just chosen to ignore this issue for the last year. I think it's a real shame on the management.

This situation definitely makes me feel like Marketo is too expensive. 
Anonymous
Not applicable
Yes thanks for offering to help Rafael, but Veronica is correct in asuming my underlying point. Yes I could research every possible work-around (cough-solution) but at that point... what's the point. Why pay large sums of money for tools that aren't up-to-date and fully functional? Why not just use a developer at a certain point?

Yes Brice, some sort of picket should be in order. Although since sending me to Summit to attend isn't even being considered, I can see my request to just go there and picket falling short as well.


Brice_Dunwoodie
Level 4
@Ben R

Just saw your question. You can modify specific labels in the form using jQuery as long as those labels have unique text in them that you can reference. With jQuery you can find an item and modify it based on the item's contents.

I know you shouldn't have to do this, but today you can work around Marketo's lack of [Fill in the Blank] with a bit of code.

Say you have a label with the text "Check here to receive Wednesday emails."

You can address this label and set a new CSS class called "my_class" like this:

$('label:contains("Wednesday")').addClass("my_class");

You can paste that into a custom HTML block in your landing page and it should work. You can also test the jQuery in the JavaScript console in Chrome, for example. Then once it works you can paste it in.

I've found the ":contains()" qualifier a bit difficult at times. So an alternate approach is the following. It's more reliable, but also a bit more code:

// loop through all labels, find the one containing Wednesday and add the CSS class
$('label').each(function() {
  if ($(this).text().indexOf("Wednesday") > -1) {
     $(this).addClass("my_class");
  }
});

This can also be condensed down to one line as follows:
$('label').each(function() {if ($(this).text().indexOf("Wednesday") > -1) {$(this).addClass("my_class");}});

I know this is all a bit painful. But if you focus on the words "Wednesday" (a unique phrase in your label) and "my_class" (the class you want to use to style the label) and just replace those to fit your purpose, then this should work for you.

NOTE:
I've used the $ sign to reference jQuery. In your environment it might be "$jQ", depending on who created the template. You can view source and search for both and update my code accordingly. If neither one seem to work, then you can add this to the <head> of your template:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

Hope that helps. Hope Marketo stops making me a better jQuery coder soon. 🙂
Anonymous
Not applicable
Or partner with someone who knows forms!  Mail Chimp seems to be leading the way with reaching out to other industry leaders and integrating with them.  If this was an option, we'd do it. https://blog.mailchimp.com/unbounce-form-integration-with-mailchimp/ 
Anonymous
Not applicable
just an update to Brice's note

to always have the latest and greatest jqurey from google leave off the .8.3 and ie.
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Cheers,
Eric