-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathsavy.min.js
executable file
·1 lines (1 loc) · 1.62 KB
/
savy.min.js
1
!function(t){t.fn.savy=function(e,i){const a="savy-";"load"==e?(t(this).each((function(){t(this).is(":radio")?(localStorage.getItem(a+t(this).attr("name"))&&(localStorage.getItem(a+t(this).attr("name"))==this.id?this.checked=!0:this.checked=!1),t(this).change((function(){localStorage.setItem(a+t(this).attr("name"),this.id)}))):t(this).is(":checkbox")?(localStorage.getItem(a+this.id)&&(this.checked="1"==localStorage.getItem(a+this.id)),t(this).change((function(){localStorage.setItem(a+this.id,this.checked?"1":"0")}))):t(this).is("input")||t(this).is("textarea")?(localStorage.getItem(a+this.id)&&(this.value=localStorage.getItem(a+this.id)),t(this).on("focus",(function(){var e=setInterval((()=>{localStorage.setItem(a+this.id,this.value),t(this).is(":focus")||clearInterval(e)}),500)}))):t(this).is("select")&&(t(this).is("[multiple]")?(localStorage.getItem(a+this.id)?t(this).val(localStorage.getItem(a+this.id).split(",")):localStorage.setItem(a+this.id,t(this).val()),t(this).change((function(){localStorage.setItem(a+this.id,t(this).val())}))):(localStorage.getItem(a+this.id)?t(this).val(localStorage.getItem(a+this.id)):localStorage.setItem(a+this.id,t(this).val()),t(this).change((function(){localStorage.setItem(a+this.id,t(this).val())}))))})),t.isFunction(i)&&i()):"destroy"==e?(t(this).each((function(){t(this).is(":radio")?localStorage.getItem(a+t(this).attr("name"))&&localStorage.removeItem(a+t(this).attr("name")):localStorage.getItem(a+this.id)&&localStorage.removeItem(a+this.id)})),t.isFunction(i)&&i()):console.error("savy action not defined. Please use $('.classname').savy('load') to trigger savy to save all inputs")}}(jQuery);