Revision: 9177
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 24, 2008 04:48 by andyweb
Initial Code
jQuery:
// hide all instructions
$('.defaultForm li > .instructions').hide();
function hilite(elem){
// remove any previously selected hilite's and instructions if any
$('.defaultForm li.selected .instructions').hide();
$('.defaultForm li.selected').removeClass("selected");
// hilite and show instructions if any
elem.parent('li').addClass("selected");
elem.parent('label').parent('li').addClass("selected");
elem.siblings('.instructions').show();
elem.parent().siblings('.instructions').show();
}
// on focus tests for various types of form elements
var inputFocused = false;
// input fields
$('.defaultForm * > input').focus(function () {
// check to see if input field is not a button
if( !$(this).attr("src") || $(this).attr("value") != "submit"){
hilite($(this));
}
inputFocused = true;
});
// radio and checkboxes only get detected with onclick (or tab) for chrome/safari
if(!inputFocused){
$('.defaultForm * > input').click(function () {
// check to see if input field is not a button
if( !$(this).attr("src") || $(this).attr("value") != "submit"){
hilite($(this));
}
});
}
// text areas
$('.defaultForm * > textarea').focus(function () {
hilite($(this));
});
// select boxes
$('.defaultForm * > select').focus(function () {
hilite($(this));
});
HTML Markup:
<form name="formExample" id="formExample" action="">
<ul class="defaultForm">
<li>
<label for="name">Your Full Name:</label><input name="name" type="text" class="inputText onehalf" />
<span class="required">*</span><span class="error">! Please enter your full name</span>
<span class="instructions">Please enter your full name</span>
</li>
</ul>
</form>
CSS:
ul.defaultForm{}
ul.defaultForm li{clear:left; padding:6px 0 2px; line-height:180%;}
ul.defaultForm li.selected{background-color:#F5F5F5;}
ul.defaultForm li label{float:left; width:150px; padding-right:20px; margin-top:-2px; font-weight:normal; text-align:right;}
ul.defaultForm li label.radio,
ul.defaultForm li label.checkbox{float:none; width:auto;}
ul.defaultForm li .required{padding-left:5px;}
ul.defaultForm li .error{display:block; margin-left:170px; color:#D71111; font-weight:bold; display:none; }
ul.defaultForm li .instructions{display:block; margin-left:170px; color:#666;}
.onethird{width:33%;}
.fortypercent{width:40%}
.onehalf{width:50%;}
.twothirds{width:66%;}
.fullwidth{width:100%;}
Initial URL
Initial Description
Initial Title
Form elements with on-active field highlighting & instruction spans
Initial Tags
form, jquery
Initial Language
JavaScript