Skip to content

Instantly share code, notes, and snippets.

@wesen
Created August 31, 2011 14:26
Show Gist options
  • Save wesen/1183669 to your computer and use it in GitHub Desktop.
Save wesen/1183669 to your computer and use it in GitHub Desktop.
/***************************************************************************
*
* Input Default fields handling
*
***************************************************************************/
var origJqueryVal = $.fn.val;
$.fn.origVal = origJqueryVal;
/**
* Make an input element reset dynamically to a default value.
**/
$.fn.setDefaultInput = function (val) {
if ($(this).origVal() == "") {
$(this).origVal(val);
}
};
$.fn.makeInputDefault = function () {
this.each(function () {
if ($(this).data("defaultValue")) {
/* avoid double input default handling */
return;
}
var defaultVal = $(this).attr("default");
if ((defaultVal == undefined) || (defaultVal === "")) {
defaultVal = $(this).origVal() || "";
}
$(this).data("defaultValue", defaultVal);
$(this)
.click(function() { if ($(this).origVal() == defaultVal) {
$(this).origVal('');
} else {
$(this).select();
}})
.blur(function() { $(this).setDefaultInput(defaultVal); }).blur();
});
};
$.fn.resetInputDefault = function () {
this.each(function () {
if ($(this).origVal() == $(this).data("defaultValue")) {
$(this).origVal("");
}
});
};
$.fn.val = function (value) {
if (value == undefined) {
var origVal = this.origVal();
var defaultValue = this.data("defaultValue");
if (defaultValue && (defaultValue == origVal)) {
return "";
} else {
return origVal;
}
} else {
return this.origVal(value);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment