今日働いていたときに問題が発生しました。ページ上の会社名は、プロジェクト名を選択した後にAJAXを使用して読み取られます。ただし、JQTransformはページが読み込まれた後に呼び出されるため、会社名のドロップダウンボックスに最新のデータを表示できません。
<link rel = "styleSheet" href = "$ {ctx} /jqtransformmplugin/jqtransform.css" type = "text/css"> </link> <script type = "text/javascript" src = "$ {ctx} /jqtransformmplugin/jquery.jqtransform.js"> </script>
<script type = "text/javascript">
$(function(){
$( 'form')。jqtransform({imgpath: 'images/jqueryformimg/'});
});
</script>
FireBugを使用して、データが実際にスプライスされていることがわかりますが、フォームはページのロード後にJQTransformメソッドと呼ばれ、JQTransFormSelectWrapperのULデータが更新されていません。長い間考えていた後、私はULをシンプルで粗雑な方法で更新することにしました。
function CompanyAjax(proid){ $ .ajax({
タイプ:「投稿」、
url: "$ {pagecontext.request.contextpath}/recordsearch/ajax/getcompanyajax.do"、
データ型:「JSON」、
データ:{proid:proid}、
成功:function(jsondata){
var tmp = '';
tmp+= '<select id = "centerid" name = "centerid" onchange = "comchange()" 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")。後(tmp);
$( "#centerid")。jqtransselect();
}
});
}
ははは、Ajaxが会社のデータを照会した後、JQTransformによって生成された選択に関連したDivを削除し、Selctをスプライスしてから、SELECTを再発明します。この方法は愚かですが、最初に使用しましょう。将来的にはより良い方法があります。
かっこいいですか? 。ハハ、実際、JQTransformはより強力です。将来同様の効果を使用する必要がある場合は、参照できます。