Remember me? forgot password | register

SilverStripe Forum

10676 Posts in 2792 Topics by 1518 members

Jump to:

Site Builders

If this is your first visit, you will need to register before you can post. However, you can browse all messages below.

Community » SilverStripe Forum » Site Builders » adding onclick to search form button
Page: 1 go to end Reply
Author Topic: adding onclick to search form button 738 views
  • Nicolaas
    avatar
    Community Member
    133 posts
    18 SilverStripe Sites

    adding onclick to search form button Link to this post

    Hi Folk

    I have written the following piece of code (from tutorial):
    class Page_Controller extends ContentController {
    function SearchForm() {
    $searchText = isset($this->Query) ? $this->Query : 'Search';
    $searchField = new TextField("Search", "", $searchText);
    $fields = new FieldSet($searchField);
    $resultAction = new FormAction("results","Go");
    $actions = new FieldSet($resultAction);
    return new SearchForm($this, "SearchForm", $fields, $actions);
    }

    I would like to add some JavaScript to the search field so that it automatically removes the word search onclick.

    It seems like I can only do this in Sapphire or is there another way. I am not too keen to do it in Sapphire, because then it will get lost when I upgrade the site.

    Any help greatly appreciated.

    Nicolaas

  • Sean
    avatar
    Core Development Team
    435 posts
    1 SilverStripe Site 1 SilverStripe Theme

    Re: adding onclick to search form button Link to this post

    If you include the behaviour script as requirements for your class you can create a new js file with something like this:

    eg. Page.php

    class Page_Controller extends ContentController {

    function init() {
    Requirements::javascript('jsparty/behaviour.js');
    Requirements::javascript('mysite/javascript/SearchForm.js');
    parent::init();
    }

    }

    And then, you can create your SearchForm.js file (Replace the # ID with the correct search input field ID if this one isn't correct:

    Behaviour.register({
    '#Search_Form_SearchForm_Search' : {
    onfocus : function() {
             if(this.value == 'Search') this.value = '';
    },
    onblur : function() {
       if(this.value == '') this.value = 'Search';
    }
    }
    });

    Hope this helps!

    Cheers,
    Sean

  • Nicolaas
    avatar
    Community Member
    133 posts
    18 SilverStripe Sites

    Re: adding onclick to search form button Link to this post

    Hi Sean

    Thank you for your reply.

    I noticed that all my pages have the the following JS attached (added to my source code) by default:

    <script type="text/javascript" src="jsparty/behaviour.js"></script>
    <script type="text/javascript" src="jsparty/prototype.js"></script>
    <script type="text/javascript" src="jsparty/scriptaculous/effects.js"></script>
    <script type="text/javascript" src="cms/javascript/PageCommentInterface.js"></script>

    Why would that be? It is not in the template/age.ss file and not in the code/page.php file, that is for sure....

    The behaviour does not really seem to work either.... (but not JS errors).

    Any suggestions?

  • Sean
    avatar
    Core Development Team
    435 posts
    1 SilverStripe Site 1 SilverStripe Theme

    Re: adding onclick to search form button Link to this post

    Those files will have been included because you've enabled the page commenting. There's some javascript for ajax on the comments interface that depends on behaviour and prototype.

    Cheers,
    Sean

    738 views
go to top Reply

Currently Online:

Fuzz10

Welcome to our latest member: Boomer T