请选择 进入手机版 | 继续访问电脑版

硬汉工作室

搜索
热搜: 活动 交友 discuz
查看: 517|回复: 0

[开发技术] 修复discuz手机注册地区字段错误问题

[复制链接]

671

主题

694

帖子

5973

积分

管理员

硬汉工作室创始人

Rank: 9Rank: 9Rank: 9

积分
5973

宣传达人推广达人

QQ
发表于 2022-2-15 16:57:02 | 显示全部楼层 |阅读模式
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寻求付费支持
Discuz插件商店:http://addon.dismall.com/?@56030.developer
回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|硬汉工作室 ( 冀ICP备13021567号-9 )

GMT+8, 2024-3-29 07:37 , Processed in 0.452132 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表