I'm writing some code to perform some simple form validation and I would like to display error messages inside the actual relevant textarea by means of a text fadeout/fadein effect.
To achieve this I am using jQquery UI to do the following:
- Step 1: Animate the color to match the background colour
- Step 2: Modify the text to show the error message then fade it in
- Step 3: Fade the error message out, change the text back to its previous content
- Step 4: Fade the text back in
- Step 5: Finally, Focus the textarea and put the cursor at the end
This works fine, however to do this I have had to nest a lot of anonymous function which is something I really don't like to do.
Is there a better way of achieving the same effect?
if (replyto == body) {
$textarea.prop("disabled", true).animate({ color: 'rgb(41, 41, 41)'},500, function(){
$textarea.text('Please enter your reply here')
.animate({ color: 'white'},500, function(){
$textarea.delay('1000')
.animate({ color: 'rgb(41, 41, 41)'},500, function(){
$textarea.text(body)
.animate({ color: '#a7a7a7'},500)
.prop("disabled", false)
.focus()
.putCursorAtEnd();
});
});
});
return false;
}