discuz可以设置注册时需要填写的字段,比如地区信息,在pc端,选择城市是三级联动的,也就是省市区,但是手机端注册只显示了省列表,选择某个省之后,并没有列出城市信息。通过浏览器报错看到是因为 showdistrict函数不存在,这个是pc上才有的函数,手机调用就会出错,于是我们重写个这个函数即可。
代码如下:
<script>
function showdistrict(container, elems, totallevel, changelevel, containertype) {
var getdid = function(elem) {
var op = elem.options[elem.selectedIndex];
return op['did'] || op.getAttribute('did') || '0';
};
var pid = changelevel >= 1 && elems[0] && document.getElementById(elems[0]) ? getdid(document.getElementById(elems[0])) : 0;
var cid = changelevel >= 2 && elems[1] && document.getElementById(elems[1]) ? getdid(document.getElementById(elems[1])) : 0;
var did = changelevel >= 3 && elems[2] && document.getElementById(elems[2]) ? getdid(document.getElementById(elems[2])) : 0;
var coid = changelevel >= 4 && elems[3] && document.getElementById(elems[3]) ? getdid(document.getElementById(elems[3])) : 0;
var url = "home.php?mod=misc"+"&ac=ajax"+"&op=district&container="+container+"&containertype="+containertype
+"&province="+elems[0]+"&city="+elems[1]+"&district="+elems[2]+"&community="+elems[3]
+"&pid="+pid + "&cid="+cid+"&did="+did+"&coid="+coid+'&level='+totallevel+'&handlekey='+container+'&inajax=1'+(!changelevel ? '&showdefault=1' : '');
$.ajax({
type: "GET",
url: url,
dataType: "xml",
success: function (rs) {
$('#'+container).html($(rs).find('root').text());
}
});
}
</script>
其实主要就是替换pc端的$符号及重写ajaxget方法。
有关PHP系统、Discuz或网站等各种问题,可以联系QQ1069971363寻求付费支持
|