input 原始版,后面修改

(function($){
function inputauto(obj){
init={
inputClass:".js_input",
Password_tag:"Password",
pswhtml:'<input class="input" type="text" value="" placeholder=""/>',
pswClass:'addpsw',
wrapClass:'psw_wrap',
wrap:'<span></span>'
}
this.init=$.extend(init,obj);
}

inputauto.prototype={
main:function(){
var _this=this,i=this.init,
initval='';

$(i.inputClass).each(function(){

initval=_this.getholder(this);
_this.input_def(this,initval);
})
_this.focus();
_this.blur();
},
focus:function(){
var _this=this,i=this.init,$tempInput;
$(i.inputClass).on("focus",function(){
var init=$(this).attr("data-placeholder"),
initusr="";

if(_this.getholder(this)!=""){
initusr=_this.getholder(this);
}else{
initusr=$(this).attr("data-placeholder-old");
}

if($(this).val()!="" && $(this).val()!=initusr && init!=i.Password_tag){//有新输入保存输入值
$(this).attr("data-userval", $(this).val());
};

$(this).val("");
$(this).attr('data-placeholder-old',initusr);

if(_this.placeholder()){
$(this).attr('placeholder','');
}

if(init==i.Password_tag) {
if(_this.navie() && $(this).hasClass(i.pswClass)){//ie78 下替代pwd的txt元素
var $prev=$(this).prev();
var t=_this.getholder($prev[0]);
var $tobj=$(this).prev();

$tobj.show().val("").attr('data-placeholder-old',t);
$(this).attr('data-placeholder-old',t).hide();
$tobj.focus();

}else{
$(this).attr("type","password");
}
}//
})
},
blur:function(){
var _this=this,i=this.init;
$(i.inputClass).on("blur",function(){
var init=$(this).attr("data-placeholder"),
holder=_this.getholder(this),
initusr=$(this).attr("data-placeholder-old"),
usrval=$(this).attr("data-userval");

if($(this).val()==""&& (!(_this.navie()) || init!=i.Password_tag)){
usrval?_this.input_def(this,usrval):_this.input_def(this,initusr);
};

if(init==i.Password_tag && ($(this).val()==""||$(this).val()==initusr)){//密码为空显示提示

if(_this.navie() && !$(this).hasClass(i.pswClass)){//ie78 下pwd元素
//alert(usrval)
$(this).next().show().val(holder).end().hide();
}else{
$(this).attr("type","text");
}
}
})
},
placeholder:function(){
return 'placeholder' in document.createElement('input');
},
input_def:function(obj,init){
var _this=this,i=this.init;
$(obj).val("");
if(!_this.placeholder()){
$(obj).val(init);
if($(obj).attr("type")=="password"){
_this.chagetype(obj,init);
}
}else{
$(obj).attr('placeholder',init);
($(obj).attr("type")=="password")? $(obj).val(""):$(obj).val(init);
}
},
chagetype:function(obj,init){
var _this=this,i=this.init;

if(_this.navie()){
if(!$(obj).parent().hasClass(i.wrapClass)){
$(obj).wrap(i.wrap);
$(obj).parent().addClass(i.wrapClass).append(i.pswhtml).end().next().addClass(i.pswClass).val(init).attr("id","psw_"+$(obj).attr("id")).attr("data-placeholder",i.Password_tag).end().hide();
}
}else{
if($(obj).attr("type")=="password") $(obj).attr("type","text");
}
},
navie:function(){
if(navigator.appName == "Microsoft Internet Explorer" && (navigator.appVersion.split(";")[1].replace(/[ ]/g,"")=="MSIE7.0" || navigator.appVersion.split(";")[1].replace(/[ ]/g,"")=="MSIE8.0")){
return true;
}else{
return false;
}
},
getholder:function(obj){
var _this=this, initval="";
if(!_this.placeholder()){
initval=obj.attributes['placeholder'].nodeValue;
}else{
initval=$(obj).attr("placeholder");
}
return initval;
}
}

var inputauto_inst=new inputauto({inputClass:".input"});
inputauto_inst.main();

})(jQuery);

原文地址:https://www.cnblogs.com/uh-huh/p/4325939.html