您的位置:首页 > Web前端 > JQuery

jQuery实现三级联动

2014-03-06 18:57 302 查看
三级联动相信大多数人都很好的实现过,今天我是小小的改动了下。当下拉列表里选择某一个地区时,相应的另外一个下拉列表先出现:Please Wait,0.5秒后再显示ajax获取的数据。这样用户体验稍微好一点。下面是我的js代码:
//Region&country
$('#Article_code').change(function(){
var country=$('#Article_code option:selected').val();
var data={'country':country};
var url='<?php echo Yii::app()->createUrl('Manage/article/getRegion'); ?>';
if(country==0) {
$('#Article_region_id option').remove();
$('#Article_region_id').append($('<option value=0>Choose Region</option>'));
return false;
}
$.ajax({
type:'post',
data:data,
url:url,
beforeSend:function(){
$('#Article_region_id option:first').text('Please Wait');
},
success:function(json){
window.setTimeout(function(){
var data=eval(json);

var str='';
str+='<option value=0>Choose Region</option>';
if(!data.empty){
for(var i=0;i<data.id.length;i++){
str+='<option value='+data.id[i]+'>'+data.name[i]+'</option>';
}
}
$('#Article_region_id option').remove();
$('#Article_region_id').append(str);

},500);

},
dataType:'json'
});
});
以上是代码,在ajax发送前,beforeSend里把第一个option里的内容修改为Please Wait,在success里调用window.setTimeout延迟0.5秒将数据显示到另一个下拉列表里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: