$this refers to a jQuery object, not the element, so there is no 'value' property:
if( $this.val() == '' ) { //also use the comparison operator '==' not assignment '=' $this.val(defaultValue); http://docs.jquery.com/Attributes/val On Jan 20, 8:16 pm, Andrew <apew...@gmail.com> wrote: > I'm trying to write a couple functions that will clear a form field on > focus. I also want to the change the class if the value has changed. > > I'm new to jQuery and a novice Javascript developer, so hopefully my > issue is apparent. There appears to be an issue in how I am > referencing $this. I wanted these functions to be dynamic, as in they > will automatically affect all inputs on my form. > > The functions appear to be attaching properly - onFoucs confirmed - > but if I console.log out $this.value it is undefined. if I do just > $this, then I can see the object and it shows input#txtfirstname for > example but I can't figure out how to properly reference $this.value > for instance. > > ANy help would be greatly appreciated. > > JAVASCRIPT EXCERPT: > > $(document).ready(function() { > $("form :text").blur(function(){ > > var $this = $(this); > if( $this.value = '' ) { > $this.value = defaultValue; > $this.removeClass("changed").addClass > ("default"); > } > else > { > > $this.removeClass("default").addClass("changed"); > } > return false; > }); > > $("form :text").focus(function(){ > > var $this = $(this); > if( $this.value = $this.defaultValue ) { > $this.value = ''; > $this.removeClass("default").addClass > ("changed"); > } > else > { > > $this.removeClass("changed").addClass("default"); > } > return false; > }); > > }); > > HTML EXCERPT: > > <div class='formField'> > <span><input type='text' name='txtfirstname' title='Text input: First > Name' id='txtfirstname' size='20' value='First Name' /></span> > <span><label for='txtfirstname'>First Name:</label></span> > <span class='currentValue'>$keycontact->pNameF</span> > </div> > <div class='formField'> > <span><input type='text' name='txtlastname' title='Text input: Last > Name' id='txtlastname' size='20' value='Last Name' /></span> > <span><label for='txtlastname'>Last Name:</label></span> > <span class='currentValue'>$keycontact->pNameL</span> > </div>