getScript doesn't wait for the script to finish loading before continuing, so you are trying to call validator.setDefaults before the validator exists.
This should work: function setupValidator() { $.validator.setDefaults({ submitHandler: function() { alert("submitted!"); } }); } if (typeof($.validator) == 'undefined') { $.getScript("/javascript/jquery/jquery.validate.js", setupValidator); } else { setupValidator(); }