Jump to:

1971 Posts in 1275 Topics by 607 members

Form Questions

SilverStripe Forums » Form Questions » Custom form template. Add js events.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1
Go to End
Author Topic: 2596 Views
  • dab
    Avatar
    Community Member
    50 Posts

    Custom form template. Add js events. Link to this post

    Hi there, need advice.

    How i may change layout for my custom form, for example i have function MessageForm inside my PageController class.
    I need custom input tag with onfocus event inside. Like <input type="text" value="Name" onfocus="..." />

    Thanks.

  • Fuzz10
    Avatar
    Community Member
    786 Posts

    Re: Custom form template. Add js events. Link to this post

    Bump..

    In need of this as well..

  • Hamish
    Avatar
    Community Member
    712 Posts

    Re: Custom form template. Add js events. Link to this post

    If you want to apply JavaScript methods to your forms, you could use a selector based JavaScript library like jQuery, rather than altering the form template.

    For example, if you form looks like:

    <form id="SearchForm" action="" method="get">
       <input type="text" name="SearchForm_Query" value="" />
       <input type="submit" vlaue="submit" />
    </form>

    You can use require::javascript in your page template to add some js that might look like:

    jQuery('#searchForm').submit(function(){
       if(some expression) {
          return true; // submit form;
       } else {
          return false; // don't submit form;
       }
    });

    If you don't want to include the library, you could do it the old fashioned way too:

    var el = document.getElementById('searchForm');
    // etc....

    If you actually want to change the template, you'll need to override the form field FieldHolder method. But you shouldn't need to do this. You should be able to control how it looks with CSS and what it does with included scripts. Inline JS is not template friendly

  • Fuzz10
    Avatar
    Community Member
    786 Posts

    Re: Custom form template. Add js events. Link to this post

    Thanks Hamish, Indeed, the only way I could figure was going the javascript route. Used prototype to do that.

    2596 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.