天天看点

ajax中select获取默认值

ps: 最近项目改bug,遇到前端的问题,花了不少时间才找出毛病,在这里做个记录。避免同样的问题。随便分享一下,防止踩坑。。。

场景:页面展示一列列数据;选中某列,点击编辑,跳转到编辑页面;将该列的某个属性值展示在编辑页面的select框中。(select默认值)

一、 运用到的知识点

  1. ajax

    项目中经常运用到ajax来请求数据,接受后台数据,用于在前台展示。

    ajax 是异步请求,局部加载数据;与url 请求不同,不会刷新页面。但是对请求我们可以 通过属性async来控制同步和异步。

    同步与异步的主要区别:

    同步可以改变外部定义的变量值,

    异步可以提高加载效率

  2. 异步和同步

    异步:ajax不会影响整个页面的加载,相当于和浏览器加载或者用户操作分开走,互不相干,体现在用户角度就是不会有什么卡顿的感觉仿佛无事发生。

    同步:那就与异步相反,他和加载处于同一条线上,等这位大爷过了马路,后面的人才能接着走,就是在加载它的时候,全部的过程都等停下来,也就是假死状态。

  3. select下拉框设置默认值
$("#fwtxxmbUpdateTemp select[name='type']").attr("value",type);
           

二、项目实例

  1. ajax请求数据,在编辑页面一打开,会有动态的下拉框
var typename="";
var typecode="";
function qeuryTempletnameList(){
	$.ajax({
		url: XXXX,  //请求地址
		type: "POST",
		async:false,    // 设置成同步,typename,typecode外部变量才能接受值
		dataType: "json",
		success : function(data){  
			 var datas = data.data;
			 var optionstring ="";
             for (var i =0 ; i < datas.length ; i++) {                 
                 optionstring += "<option value=\"" + datas[i].TYPECODE + "\" >" + datas[i].TYPENAME + "</option>";  
                 typename = datas[i].TYPENAME;
                 typecode = datas[i].TYPECODE;
             }
             $("#type").html("<option value=\"\">--请选择--</option>" + optionstring);            
		}
	});
}
           
ajax中select获取默认值

2. 点击展示是默认值

$.open({
					title:title,
					width:"700px",
					height:"80%",
				    content:$("#xxx").html(),
				    btns:btns,
				    success : function(){	
				        qeuryTempletnameList();		    					    	
				    	var type = data.data.type;     //data.data是另个请求的返回的数据,在这里我没有写
				    	//通过设置value属性值,获取select值
                        $("#Temp select[name='type']").attr("value",type);	   	
				    }
	})
           

效果: //从列表页面 带到 编辑页面 的 默认选中数据

ajax中select获取默认值

继续阅读