ブランク、null、未定義値の場合 removeに流す
$(document).ready(function(){
/*
$.fn.origAttr = $.fn.attr;
$.fn.attr = function(key,value) {
if (value == "" || value == null || value == undefined) {
this.removeAttr(key);
} else {
this.origAttr(key, value);
}
return $(this);
}
*/
$.fn.origAttr = $.fn.attr;
$.fn.attr = function(key, value) {
var keys = [
"checked", "selected", "requred", "multiple", "readonly",
"disabled", "standby", "compact", "declare", "defer", "ismap",
"nohref", "noresize", "noshade", "nowrap"
];
var regexpKeys = "/(" + keys.join("|") + ")/ig";
if (typeof key == "string") {
if (key.match(regexpKeys) == null) {
$(this).origAttr(key, value);
} else if (value == 0 || !!value){
$(this).origAttr(key, value);
} else {
$(this).removeAttr(key);
}
} else {
$(this).origAttr(key, value);
}
return $(this);
};
});