使用ajax+jqtransform實現動態(tài)加載select
今天在工作的時候遇到一個問題,頁面中公司名稱是在項目名稱選擇后用ajax讀取出來的。但是jqtransform是在頁面加載完成后調用的,所以導致了公司名稱下拉框無法展示最新的數據。
<link rel="stylesheet" href="${ctx}/jqtransformplugin/jqtransform.css" type="text/css"></link>
<script type="text/javascript" src="${ctx}/jqtransformplugin/jquery.jqtransform.js"></script>
<SCRIPT type="text/javascript">
$(function(){
$('form').jqTransform({imgPath:'images/JQueryformimg/'});
});
</SCRIPT>
用firebug可以看到數據其實已經拼接上去了,但是form已經在頁面加載后已經調用過jqTransform方法, jqTransformSelectWrapper里面的ul數據沒有更新。想了許久決定用簡單粗暴的方法把ul更新掉。
function companyAjax(proid){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/recordsearch/ajax/getCompanyAjax.do",
dataType:"json",
data:{proid : proid},
success:function(jsondata){
var tmp='';
tmp+='<select id="centerid" name="centerid" onchange="comChange()" style="width: 160px;" name="centerid">';
//$("#centerid").empty(); tmp+='<option value="">--請選擇--</option>';
for(var i=0;i<jsondata.length;i++){
tmp+='<option value="'+jsondata[i].centerid+'">'+jsondata[i].centername+'</option>';
}
tmp+='</select>';
$("#centerid").parent().remove();
$("#comLable").after(tmp);
$("#centerid").jqTransSelect();
}
});
}
哈哈,在ajax查詢公司數據之后,將jqtransform生成的select相關的div刪除掉,然后把selct拼接上,再重新初始化select。方法比較蠢,不過先用著吧,以后有更好的辦法再說。
是不是很炫酷。。哈哈,其實還是jqtransform比較給力,小伙伴們以后需要使用類似效果的話,可以參考下。
相關文章
利用jQuery插件imgAreaSelect實現獲得選擇域的圖像信息
本篇文章主要對jQuery插件imgAreaSelect實現獲得選擇域的圖像信息的方法做了簡要分析說明。需要的朋友來看下吧,希望對大家有所幫助2016-12-12