anchor.diff:          $formGroup.addClass("has-success");
         });
   
  +      $("[name='_evaluations']").on("change", function() {
  +        var $el = $(this);
  +        var $formGroup = $el.closest(".form-group");
  +
  +        $el.removeClass("form-control-success form-control-error");
  +        $formGroup.removeClass("has-success has-error");
  +
  +        var val = parseFloat($el.val());
  +        if (isNaN(val) || val % 1 !== 0) {
  +          $el.addClass("form-control-error");
  +          $formGroup.addClass("has-error");
  +          return;
  +        }
  +
  +        $el.addClass("form-control-success");
  +        $formGroup.addClass("has-success");
  +      });
  +
  +      // TODO Modify for objects to create grid search
         var recurseGrid = function(arr) {
           if (arr.length === 0) {
             return [];
  
positive.code: 
  block content 
    h1 #[span.mega-octicon.octicon-circuit-board] Project: #{project.name} Optimisation #[small.text-muted (#{project._id})]
    h2 Grid Search
    form#new-optimisation
      each val, key in project.schema
        if (val.type === "int" || val.type === "float")
  
negative.code:           formObj[name] = vals; // Set key and value
          });
  
          // Process range for random search
          var rangeObj = {};
          $(this).find("[data-opt]").each(function(ind, el) {
            var $el = $(el);
            var key = $el.data("key");
            var opt = $el.data("opt");
            var val = $el.val();
            if (opt !== "scale") {
              val = parseFloat(val);
            }
            // Create key if it doesn't exist 
            if (!rangeObj[key]) {
              rangeObj[key] = {};
            }
            rangeObj[key][opt] = val;
          });
  
          // Extract evaluations for random search
          var evaluations = parseInt(formObj._evaluations[0]);
          delete formObj._evaluations;
  
          // Create experiment list
          var expList = Array(evaluations);
          for (var i = 0; i < evaluations; i++) {
            expList[i] = formObj;
          }
          console.log(expList);
          return false;
  
          $.ajax({
  