register.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. {include file='default/base/mall_top'/}
  2. <link rel="stylesheet" href="{$Think.HOME_SITE_ROOT}/css/home.css">
  3. <div class="header-login clearfix">
  4. <div class="w1200">
  5. <div class="logo">
  6. <a href="{$Think.HOME_SITE_URL}"><img src="{:ds_get_pic(ATTACH_COMMON,$Think.config.ds_config.site_logo)}"/></a>
  7. </div>
  8. </div>
  9. </div>
  10. <div class="page_login clearfix" style="background-image: url('{$Think.HOME_SITE_ROOT}/images/login/login-bg.jpg');background-position: center center;">
  11. <div class="w1000">
  12. <div class="login_form">
  13. <div class="mt">
  14. {if $Think.config.ds_config.member_normal_register == 1}
  15. <a href="javascript:void(0)" class="on"><span>{$Think.lang.register_account}</span><i></i></a>
  16. {/if}
  17. {if $Think.config.ds_config.sms_register == 1}
  18. <a href="javascript:void(0)" {if $Think.config.ds_config.member_normal_register == 0}class="on"{/if}><span>{$Think.lang.register_mobile}</span><i></i></a>
  19. {/if}
  20. </div>
  21. <div class="mc">
  22. <form id="login_normal_form" method="post" action="{:url('Login/register')}">
  23. {if $member && $member.member_id}
  24. <div class="item" style="margin:0">
  25. <div class="text-area">{$Think.lang.recommender}<input name='inviter_id' type='hidden' value='{$member.member_id}'><span>{$member.member_name}</span></div>
  26. </div>
  27. {/if}
  28. {if $Think.config.ds_config.member_normal_register == 1}
  29. <div class="form">
  30. <div class="item">
  31. <div class="text-area">
  32. <div class="iconfont ico">&#xe702;</div>
  33. <input type="text" id="member_name" name="member_name" class="text" placeholder="{$Think.lang.login_register_username_to_login}" tabindex="1"/>
  34. </div>
  35. </div>
  36. {if $Think.config.ds_config.captcha_status_register == '1'}
  37. <div class="item">
  38. <div class="text-area">
  39. <div class="iconfont ico">&#xe67b;</div>
  40. <input type="text" id="captcha_normal" name="captcha_normal" class="text" style="width:130px;float:left" placeholder="{$Think.lang.login_register_code}" tabindex="2" maxlength="4"/>
  41. <span class="span">
  42. <img style="position: absolute;top: 0;height:46px;" src="{:url('Seccode/makecode')}" title="{$Think.lang.login_index_change_checkcode}" id="codeimage">
  43. <a class="makecode" href="javascript:void(0);" onclick="javascript:document.getElementById('codeimage').src='{:url('Seccode/makecode')}'+'?'+(new Date().getTime());">{$Think.lang.login_password_change_code}</a>
  44. </span>
  45. </div>
  46. </div>
  47. {/if}
  48. </div>
  49. {/if}
  50. {if $Think.config.ds_config.sms_register == 1}
  51. <div class="form" {if $Think.config.ds_config.member_normal_register == 1}style="display:none"{/if}>
  52. <div class="item">
  53. <div class="text-area">
  54. <div class="iconfont ico">&#xe702;</div>
  55. <input type="text" id="sms_mobile" name="sms_mobile" class="text" placeholder="{$Think.lang.login_mobile_phone}" oninput = "value=value.replace(/[^\d]/g,'')" maxlength="11" tabindex="1"/>
  56. </div>
  57. </div>
  58. <div class="item">
  59. <div class="text-area">
  60. <div class="iconfont ico">&#xe67b;</div>
  61. <input type="text" oninput="value=value.replace(/[^\d]/g,'')" id="sms_captcha" name="sms_captcha" class="text" placeholder="{$Think.lang.login_mobile_verification_code}" tabindex="2" style="width:130px;float:left" maxlength="6"/>
  62. <a class="send_code valid" id="btn_sms_captcha" ds_type="1" >{$Think.lang.login_get_verification_code}</a>
  63. </div>
  64. </div>
  65. </div>
  66. {/if}
  67. <div class="item">
  68. <div class="text-area">
  69. <div class="iconfont ico">&#xe67b;</div>
  70. <input type="password" id="member_password" name="member_password" autocomplete="new-password" class="text" placeholder="{$Think.lang.login_password}" tabindex="2"/>
  71. </div>
  72. </div>
  73. <div class="item">
  74. <div class="text-area">
  75. <div class="iconfont ico">&#xe67b;</div>
  76. <input type="password" id="member_password_confirm" name="member_password_confirm" class="text" placeholder="{$Think.lang.login_register_ensure_password}" tabindex="2"/>
  77. </div>
  78. </div>
  79. <div class="item">
  80. {$Think.lang.agree_upon_registration}<a href='{:url("Document/index",["code"=>"agreement"])}' target='_blank'>{$Think.lang.user_registration_protocol}</a>
  81. </div>
  82. <div class="item">
  83. <input type="hidden" value="{$Request.param.ref_url}" name="ref_url">
  84. <input type="hidden" value="0" id="register_type" name="register_type">
  85. <input type="submit" class="btn login-btn" value="{$Think.lang.login_register_login_now_4}"/>
  86. </div>
  87. </form>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. <script>
  93. var can_submit=true
  94. $(function () {
  95. $(".login_form .mt a").click(function(){
  96. var index=$(this).index();
  97. $('#register_type').val(index)
  98. $(this).parent().next().find(".form").hide().eq(index).show();
  99. $(this).addClass("on").siblings().removeClass("on");
  100. });
  101. $("#login_normal_form").validate({
  102. errorPlacement: function (error, element) {
  103. var error_td = element.parent('.text-area');
  104. error_td.append(error);
  105. element.parents('.text-area:first').addClass('error');
  106. },
  107. success: function (label) {
  108. label.parents('.text-area:first').removeClass('error').find('label').remove();
  109. },
  110. submitHandler:function(form){
  111. if(!can_submit){
  112. return
  113. }
  114. can_submit=false
  115. ds_ajaxpost('login_normal_form','url','{if $Request.param.ref_url}{$Request.param.ref_url}{else/}{:url("Member/index")}{/if}',1000,()=>{
  116. can_submit=true
  117. });
  118. },
  119. onkeyup: false,
  120. rules: {
  121. member_name: {
  122. required: true,
  123. minlength: 3,
  124. maxlength: 15,
  125. remote: {
  126. url: HOMESITEURL + '/Login/check_member.html',
  127. type: 'get',
  128. data: {
  129. user_name: function () {
  130. return $('#member_name').val();
  131. }
  132. }
  133. }
  134. },
  135. member_password: {
  136. required: true,
  137. minlength: 6,
  138. maxlength: 20
  139. },
  140. member_password_confirm: {
  141. required: true,
  142. equalTo: '#member_password'
  143. },
  144. {if $Think.config.ds_config.sms_register == '1'}
  145. sms_mobile: {
  146. required: true,
  147. minlength: 11,
  148. maxlength: 11
  149. },
  150. sms_captcha: {
  151. required: true,
  152. minlength: 6
  153. },
  154. {/if}
  155. {if $Think.config.ds_config.captcha_status_register == '1'}
  156. captcha_normal: {
  157. required: true,
  158. remote: {
  159. url: "{:url('Seccode/check',['reset'=>'false'])}",
  160. type: 'get',
  161. data: {
  162. captcha: function () {
  163. return $('#captcha_normal').val();
  164. }
  165. },
  166. complete: function (data) {
  167. if (data.responseText == 'false') {
  168. document.getElementById('codeimage').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
  169. }
  170. }
  171. }
  172. }
  173. {/if}
  174. },
  175. messages: {
  176. member_name: {
  177. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_username}',
  178. minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
  179. maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_range}',
  180. remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_username_exists}'
  181. },
  182. member_password: {
  183. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password}',
  184. minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}',
  185. maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_range}'
  186. },
  187. member_password_confirm: {
  188. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_input_password_again}',
  189. equalTo: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_register_password_not_same}'
  190. },
  191. {if $Think.config.ds_config.sms_register == '1'}
  192. sms_mobile: {
  193. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
  194. minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
  195. maxlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}'
  196. },
  197. sms_captcha: {
  198. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}',
  199. minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}'
  200. },
  201. {/if}
  202. {if $Think.config.ds_config.captcha_status_register == '1'}
  203. captcha_normal: {
  204. required: '<i class="iconfont" title="{$Think.lang.login_index_input_checkcode}">&#xe64c;</i>{$Think.lang.login_index_input_checkcode}',
  205. remote: '<i class="iconfont" title="{$Think.lang.login_index_wrong_checkcode}">&#xe64c;</i>{$Think.lang.login_index_wrong_checkcode}'
  206. }
  207. {/if}
  208. }
  209. });
  210. });
  211. </script>
  212. {if $Think.config.ds_config.sms_register == 1}
  213. <script type="text/javascript" src="{$Think.HOME_SITE_ROOT}/js/connect_sms.js"></script>
  214. <script>
  215. $(function () {
  216. $("#login_mobile_form").validate({
  217. errorPlacement: function (error, element) {
  218. var error_td = element.parent('.text-area');
  219. error_td.append(error);
  220. element.parents('.text-area:first').addClass('error');
  221. },
  222. success: function (label) {
  223. label.parents('.text-area:first').removeClass('error').find('label').remove();
  224. },
  225. submitHandler:function(form){
  226. if(!can_submit){
  227. return
  228. }
  229. can_submit=false
  230. ds_ajaxpost('login_mobile_form','url','{if $Request.param.ref_url}{$Request.param.ref_url}{else/}{:url("Member/index")}{/if}',1000,()=>{
  231. can_submit=true
  232. });
  233. },
  234. onkeyup: false,
  235. rules: {
  236. sms_mobile: {
  237. required: true,
  238. number:true,
  239. rangelength:[11,11]
  240. },
  241. sms_captcha: {
  242. required: true,
  243. rangelength:[6,6]
  244. }
  245. {if $Think.config.ds_config.captcha_status_register == '1'},
  246. captcha_mobile: {
  247. required: true,
  248. minlength: 4,
  249. remote: {
  250. url: "{:url('Seccode/check',['reset'=>'false'])}",
  251. type: 'get',
  252. data: {
  253. captcha: function () {
  254. return $('#captcha_mobile').val();
  255. }
  256. },
  257. complete: function (data) {
  258. if (data.responseText == 'false') {
  259. document.getElementById('sms_codeimage').src = "{:url('Seccode/makecode')}"+"?" + new Date().getTime();
  260. }
  261. }
  262. }
  263. }
  264. {/if}
  265. },
  266. messages: {
  267. sms_mobile: {
  268. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
  269. number: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}',
  270. rangelength:'<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_phone}'
  271. },
  272. sms_captcha: {
  273. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}',
  274. rangelength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_sms_dynamic_code}'
  275. }
  276. {if $Think.config.ds_config.captcha_status_register == '1'},
  277. captcha_mobile: {
  278. required: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}',
  279. minlength: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}',
  280. remote: '<i class="iconfont">&#xe64c;</i>{$Think.lang.login_correct_verification_code}'
  281. }
  282. {/if}
  283. }
  284. });
  285. });
  286. </script>
  287. {/if}
  288. {include file='default/base/mall_footer'/}