Do you have a <script> tag to load your external .js file? Post a link to a test page and I can tell you for sure what's wrong.
-Mike On Tue, Nov 24, 2009 at 6:33 PM, Dave Maharaj :: WidePixels.com < d...@widepixels.com> wrote: > Sorry. I cant seem to get it to go. > > Maybe I did not clearly explain the problem. > > I want to put the function like you have below in my external js, then on > my > html pages that have a form just set it up so all I have to do is include > the setValidation( '#newAward', validate_awards ); on those pages so 1 > function gets called for every form. > > I put your function setValidation( selector, validator ) { > .... > } > In my external js > > > On the page with a form I put > > <script type="text/javascript"> > $(document).ready( function() { > setValidation( '#newAward', validate_awards ); > }); > </script> > > But when I load the page I get: > setValidation is not defined > > Ideas where I screwed up? > > Thanks again. > > Dave > > -----Original Message----- > From: Michael Geary [mailto:m...@mg.to] > Sent: November-24-09 10:02 PM > To: jquery-en@googlegroups.com > Subject: Re: [jQuery] Create a function? > > Your code could end up looking something like this: > > function setValidation( selector, validator ) { > > $(document).ready( function() { > var $form = $(selector); > > $form.submit( function() { > > $form.validate( validator ); > var valid = $(this).valid(); > if( valid ) { > var form_url = $form.attr('action'); > var page_target = form_url.substr(1).replace(new RegExp("/", > "g"), "_"); > var queryString = $form.formSerialize(); > $form.ajaxSubmit({ > type: 'post', > url: form_url + '/', > data: queryString, > resetForm: true, > success: function( response ) { > alert( response ); > $( '#' + page_target ).slideToggle('slow', > function() { > > $(response).hide().prependTo('#sortable').slideDown('slow'); > }); > } > }); > } > return false; > > }); > }); > > } > > And for the case you listed, you would call it like this: > > setValidation( '#newAward', validate_awards ); > > I threw a $(document).ready() block into that code. You don't need that if > your call to the setValidation() function is already inside a document > ready > callback, but it doesn't do any harm either. > > -Mike > > > On Tue, Nov 24, 2009 at 3:48 PM, Dave Maharaj :: WidePixels.com > <d...@widepixels.com> wrote: > > > I have the exact same code on every page where a form gets > submitted. How > can i turn that into a simple function? > > The only thing that changes is the $(this).validate(validate_awards) > and the > form ID; > > It would be so much easier if the function was in one place and > called where > needed but I cant figure this out. > > Something like: > > > $('#newAward').submit(function({ > myFormFunction(validate_awards, '#newAward'); > }); > > > where I could put in the formID and the validation rules to use > > > CURRENTLY HAVE THIS ON EVERY PAGE: Only the "validate_awards" and > "#newAward" changes > > $('#newAward').submit(function() { > > > $(this).validate(validate_awards); > var valid = $(this).valid(); > if (valid) { > > var form_url = $(this).attr('action'); > var page_target = form_url.substr(1).replace( new RegExp( "/" > ,"g"), "_" > ); > var queryString = $('#newAward').formSerialize(); > $(this).ajaxSubmit({ > type: 'post', > url: form_url+'/', > data: queryString, > resetForm: true, > success: function(response){ > alert(response); > $('#'+page_target).slideToggle('slow', function (){ > > $(response).hide().prependTo('#sortable').slideDown('slow'); > > }); > } > > > }); > } > return false; > > }); > > Any help would be greatly appreciated. > Thanks, > > Dave > > > > > No virus found in this incoming message. > Checked by AVG - www.avg.com > Version: 9.0.709 / Virus Database: 270.14.76/2519 - Release Date: 11/24/09 > 04:16:00 > > > >