register.html 14 KB

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