﻿
function asv(id,init_style,error_style,passed_style){ //ajax_submit_with_valid的简写:)
	//初始化呈现提示消息的元素
	var msg_elements  = id + ' div[@alt]';

	$(msg_elements).each(function(){
		$(this).html($(this).attr('title')).attr('class',init_style);
	});
	//ajax提交表单
	$(id).submit(function(){
						  
						  
        	$(id).ajaxSubmit({
			
			success:function(result){
				if (result.indexOf("{") == 0  ){//如果有服务器返回的内容为JSON字符串，那么验证未通过
					//将服务器返回的JSON字符串转换为JSON对象
					result = eval('(' + result + ')');
					//遍历
					
					$.each(result,function(element,msg){
						var msg_element = id + ' div[@alt='+element+']';
						if (msg=='0'){
							element_passed(msg_element,passed_style);//验证成功
						}else{
							element_error(msg_element,error_style,msg);//验证失败
						}
					});
				}else{
					//验证成功了，清除所有呈现提示消息元素
					$(msg_elements).each(function(){
						element_passed(this,passed_style);
					});
    
					server_success(result); //服务端成功了（验证通过，处理完毕）,调用自定义的名为server_success函数
				}
			}
		});
		return false;//防止表单通过普通方式提交
	});

	var submit_element = id + ' input[@type=submit]';

	//ajax动作开始时，更改提交按钮的演示
	$(id).ajaxStart(function(){

		$(submit_element).hide().after('<div class="asv_doing">正在处理 ...</b>');
	});

	//ajax停止
	$(id).ajaxStop(function(){
		$(".asv_doing").remove();
		$(submit_element).show();
	});

	//ajax发生错误
	$(id).ajaxError(function(){
		alert("网络繁忙，请稍后再试。");
	});

}
//设置已通过验证的文本域样式
function element_passed(element,style){
	$(element).empty().attr('class',style);
}
//设置未通过验证的文本域样式
function element_error(element,style,msg){
	var html = $(element).attr('title') + '<div>' + msg + '</div>';
	$(element).attr('class',style).html(html);
}


