westdc-zf1/public/js/member.js

144 lines
3.8 KiB
JavaScript
Raw Normal View History

(function( $ ){
$.fn.user = function( options ) {
var settings = $.extend( {
op :'login',
url :'',
panel:'',
form:'',
callback : '',
submitbtn :'',
loadbar:''
}, options);
var methods = {
request : function(){
$.ajax({
'type':"POST",
'url':settings.url,
'data':$(settings.form).serialize(),
'success':settings.callback,
'timeout': 30000,
'error': function(){
methods.Alert('danger','出现错误,请稍后重试');
},
'beforeSend': function(){
$(settings.submitbtn).addClass('disabled');
$(settings.submitbtn).attr('disabled','disabled');
$(settings.loadbar).show();
},
complete: function(){
$(settings.submitbtn).removeClass('disabled');
$(settings.submitbtn).removeAttr('disabled');
$(settings.loadbar).hide();
}
});
},
register : function(){
methods.request();
},
login : function(){
methods.request();
},
Alert : function(type,content){
$(settings.panel).attr('class','alert alert-'+type);
$(settings.panel).html(content);
}
}
var callback = {
register : function(data){
if (typeof(data)=='object')
{
if(typeof(data.error)!='undefined')
{
methods.Alert('danger',data.error);
if(typeof(data.place)!='undefined')
{
this.input = $('#user-form-register input[name='+data.place+']');
this.input.parent('div').addClass('has-error');
this.input.focus();
}
return false;
}
if(typeof(data.msg)!='undefined')
{
methods.Alert('danger',data.error);
return false;
}
if(typeof(data.success)!='undefined')
{
$('#user-register-dismiss').click();
window.location.href = window.location.href;
}
}
else{
methods.Alert('danger','服务器掉链子了,<a href="/service/reporterror/?content=error_on_User_Register">通知管理员揍它</a>');
return false;
}
},
login : function(data){
if (typeof(data)=='object')
{
if(typeof(data.error)!='undefined')
{
methods.Alert('danger',data.error);
if(typeof(data.place)!='undefined')
{
this.input = $('#user-form-login input[name='+data.place+']');
this.input.parent('div').addClass('has-error');
this.input.focus();
}
return false;
}
if(typeof(data.success)!='undefined')
{
$('#user-login-dismiss').click();
window.location.href = window.location.href;
}
}
else{
methods.Alert('danger','服务器掉链子了,<a href="/service/reporterror/?content=error_on_User_Login">通知管理员揍它</a>');
return false;
}
}
}
this.each(function() {
if(settings.op == 'register')
{
settings.url = '/account/register';
settings.panel = '#register-alert';
settings.form = '#user-form-register';
settings.callback = callback.register;
settings.submitbtn = '#user-register-btn';
settings.loadbar = '#register-ajax-loading';
$('#user-form-register input').each(function(index, element) {
$(this).parent('div').removeClass('has-error');
$(this).bind('focusout',function(){
$(this).parent('div').removeClass('has-error');
});
});
methods.register();
}
if(settings.op == 'login')
{
settings.url = '/account/login';
settings.panel = '#login-alert';
settings.form = '#user-form-login';
settings.callback = callback.login;
settings.submitbtn = '#user-login-btn';
settings.loadbar = '#login-ajax-loading';
$('#user-form-login input').each(function(index, element) {
$(this).parent('div').removeClass('has-error');
$(this).bind('focusout',function(){
$(this).parent('div').removeClass('has-error');
});
});
methods.login();
}
});
};
})( jQuery );