http://stackoverflow.com/questions/11787788/ember-validations-are-not-working-when-start-the-application-on-different-page

by Sylvain MINA

HTML

<script src="https://github.com/downloads/wycats/handlebars.js/handlebars-1.0.0.beta.6.js"></script>
<script src="https://github.com/downloads/emberjs/ember.js/ember-latest.js"></script>
<script src="https://github.com/downloads/sly7-7/try_git/jquery.validate.min.js"></script>
<script type="text/x-handlebars" data-template-name="application">
  {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="list">
    <a {{action gotoRegistration}}>Go to registration</a>
</script>
    
<script type="text/x-handlebars" data-template-name="registration">
        <form class="form-horizontal" id="registerForm">
            <fieldset>
                <legend>registration</legend>
                <div class="control-group">
                    <label class="control-label" for="user_name">User Name</label>
                    <div class="controls">
                        <input type="text" class="input-xlarge" id="user_name" name="user_name"/>
                    </div>
                </div>  
                <div class="control-group">
                    <label class="control-label" for="user_email">Email</label>
                    <div class="controls">
                        <input type="text" class="input-xlarge" id="user_email" name="user_email" title="Tooltip text"/>
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label" for="password">Password</label>
                    <div class="controls">
                        <input type="password" class="input-xlarge" id="password" name="password" title="Password tooltip"/>
                    </div>
                </div>
                <div class="control-group">
                    <label class="control-label" for="password_confirm">Password Confirmation</label>
                    <div class="controls">
                        <input type="password" class="input-xlarge" id="password_confirm"...

JavaScript

App = Ember.Application.create({});
App.ApplicationView = Em.View.extend({
    templateName:'application'
});

App.ApplicationController = Em.Controller.extend();
App.ListView = Em.View.extend({
    templateName: 'list'
});

App.RegistrationController = Em.Controller.extend();
App.RegistrationView = Em.View.extend({
  templateName: 'registration', 
  didInsertElement: function () {
    //this.$("#registerForm input").tipsy({gravity: 'e'});
    // Validation
    this.$("#registerForm").validate({
      rules : {
        user_name : "required",
        user_email : {
           required : true,
           email : true
        },
        password : {
           required : true,
           minlength : 6
        },
        password_confirm : {
           required : true,
           equalTo : "#password"
        }
      },

      errorClass : "help-inline",
      errorElement : "span",
      highlight : function(element, errorClass, validClass) {
          debugger;
        $(element).parents('.control-group').removeClass('success');
        $(element).parents('.control-group').addClass('error');
      },
      unhighlight : function(element, errorClass, validClass) {
          debugger;
        $(element).parents('.control-group').removeClass('error');
        $(element).parents('.control-group').addClass('success');
      }
    });
  }
});
App.Router = Em.Router.extend({
    enableLogging: true,
    location: 'hash',

    root: Em.Route.extend({
        // EVENTS
        gotoList: Ember.Route.transitionTo('list'),
        gotoAbout: Ember.Route.transitionTo('about'),
        gotoPost: Ember.Route.transitionTo('post'),
        gotoRegistration: Ember.Route.transitionTo('registration'),

        // STATES
        index: Em.Route.extend({
            route: '/',
            redirectsTo: 'list'
        }),
        list: Em.Route.extend({
            route: '/list',
            connectOutlets: function(router, context) {
               ...