Ok...after a lot of experimentation, I've got a solution that's working to the point that I've attempted to implement it.
Here's the code: $(document).ready(function() { $('input:text.required').each(function() { $(this).blur(function() { var val = (this.value.length); if (val == 0) { $("#" + this.id + "_error").fadeIn(500); $('#submit').attr('disabled', 'disabled'); } else { $("#" + this.id + "_error").fadeOut(500); $('#submit').removeAttr('disabled'); }; $('input:text.required').each(function() { var val = (this.value.length); if (val == 0) { $('#submit').attr('disabled', 'disabled'); } }); }); }); }); This code allows for the following: - on blur of any text input with class 'required' the length is checked - if the length of the required field is > 0, then the error message is shown and the submit button for the form is disabled - the second half of the code checks all the text inputs with class 'required' - if the length of any of the required text fields is 0, then the submit button is disabled What I need to do now: - Allow for other type of inputs to be checked on blur, etc., such as selects (Later, I'll add other types of validation, such as numeric, etc.) Question: - How do I modify ('input:text.required') to accommodate other types of required inputs? - I tried ('input:text.required, input:select.required') and ('input:text.required', 'input:select.required') but that didn't work Clues or hints? Thanks, Rick > -----Original Message----- > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On > Behalf Of MorningZ > Sent: Monday, December 22, 2008 2:40 PM > To: jQuery (English) > Subject: [jQuery] Re: How can I generalize this code for all values? > > > Try this change > > $("#submit").attr('disabled', (val == "") ? "disabled" : null); > > > > If that doesn't work, then perhaps: > > if (val == "") { > $("#" + this.id + "_error").fadeIn(500); > $("#submit").attr("disabled", "disabled"); > } > else { > $("#" + this.id + "_error").fadeOut(500); > $("#submit").removeAttr("disabled"); > } > > > > > On Dec 22, 2:21 pm, "Rick Faircloth" <r...@whitestonemedia.com> wrote: > > I see in your example code that you're still using a hard-coded name > > for the input. I'd like it completely generalized for all variables. > > > > I'm working towards creating code for categories of input types: text, > > radio, checkbox, and textarea, etc. > > > > I modified your example, and all seems to be working well with the code > > below, except that the submit button is becoming enabled even when there > > is an error message showing. I don't understand the last line enough > > to even tinker with that...suggestions? > > > > Thanks, Rick > > > > Here's the new code: > > > > $(document).ready(function() { > > > > $("inp...@type='text']").each(function() { > > > > $(this).blur(function() { > > var val = $.trim(this.value); > > > > if (val == "") > > { $("#" + this.id + "_error").fadeIn(500); } > > else > > { $("#" + this.id + "_error").fadeOut(500); } > > $("#submit").attr('disabled', (val == "") ? "disabled" > > : ""); > > }); > > }); > > > > }); > > > -----Original Message----- > > > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On > > > Behalf Of MorningZ > > > Sent: Monday, December 22, 2008 1:44 PM > > > To: jQuery (English) > > > Subject: [jQuery] Re: How can I generalize this code for all values? > > > > > Just some advice: why mix "-" and "_" all up? it makes it easier if > > > they were the same > > > > > for instance > > > > > <input type="text" id="street_number" /> > > > <img id="street_number_error" src="error.png" /> > > > > > <input type="text" id="street_name" /> > > > <img id="street_name_error" src="error.png" /> > > > > > $("input[id^='street_']").each(function() { > > > var val = $.trim(this.value); > > > if (val == "") { > > > $("#" + this.id + "_error").fadeIn(500); > > > } > > > else { > > > $("#" + this.id + "_error").fadeOut(500); > > > } > > > $("#submit").attr("disabled", (val == "") ? "disabled" : ""); > > > }); > > > > > On Dec 22, 1:10 pm, "Rick Faircloth" <r...@whitestonemedia.com> wrote: > > > > Don't know if that's the best phrasing for the subject, > > > > but what I'm trying to do is develop some code that > > > > will work for all for inputs of type 'text', instead > > > > of hard-coding the id values. > > > > > > The original code is this: > > > > > > $('input#street_number').blur(function() { > > > > > > if (this.value.length == 0) > > > > { $('#street-number-required-error').fadeIn(500); > > > > $('#submit').attr('disabled', 'disabled') } > > > > if (this.value.length > 0) > > > > { $('#street-number-required-error').fadeOut(500); > > > > $('#submit').attr('disabled', '') }; > > > > > > }); > > > > > > $('input#street_name').blur(function() { > > > > > > if (this.value.length == 0) > > > > { $('#street-name-required-error').fadeIn(500); > > > > $('#submit').attr('disabled', 'disabled') } > > > > if (this.value.length > 0) > > > > { $('#street-name-required-error').fadeOut(500); > > > > $('#submit').attr('disabled', '') }; > > > > > > }); > > > > > > Here's my coding attempt: (no errors in firebug, but not response > > > > from the DOM)... > > > > > > $(document).ready(function() { > > > > $("inp...@type='text']").each(function(i) { > > > > $(this).blur(function() { > > > > if (this.value.length == 0) > > > > { $(this.id.replace(/_/g, '-')+'-error').fadeIn(500); > > > > $('#submit').attr('disabled', 'disabled') } > > > > else > > > > { $(this.id.replace(/_/g, '-')+'-error').fadeOut(500); > > > > $('#submit').attr('disabled', '') } > > > > }); > > > > }); > > > > > > }); > > > > > > Anyone care to offer guidance to get this working? > > > > > > Thanks, > > > > > > Rick >