静态页面
<link rel="stylesheet" href="__MOBILE__/css/wenStyle.css"/>
<style>
    body{position: relative;}
  input::-webkit-input-placeholder {color: #333; } 
  input:-moz-placeholder {color: #333; } 
  input::-moz-placeholder { color: #333; } 
  input:-ms-input-placeholder {color: #333; } 
  .big_width100{background: #FBF8EF;margin: 0;}
  .language{padding: .3rem;}
  .yuyan{margin-left: 5.2rem;}
  .inp {border: 1px solid gray;padding: 0 10px;width: 200px;height: 30px;font-size: 18px;}
  .btn {border: 1px solid gray;width: 100px;height: 30px;font-size: 18px; cursor: pointer;}
  #embed-captcha {width: 272px;margin: 0 auto;}
  #embed-captcha div{max-width: 5.44rem;}
  #embed-captcha .geetest_radar_tip_content{margin-left: .7rem;}
  .show {width: 100%; height: .6rem; text-align: center; line-height: .6rem;}
  .hide {display: none;}
  #notice {color: red;}
  .geetest_radar_btn , .geetest_ghost_success{margin-top:.2rem;}
  #embed-captcha{width: 5.44rem;}
  .extra_reg a{color: #333;}
  .register-title{padding:.3rem 0; background: #0ca2e8; font-size: .4rem;}
  .yuyan select{color: #333;}
</style>
{/block}
{block name="content"}
<div class="login-container register-container">
    <div class="register-title">{:lang('用户注册')}</div>
    <div class="yuyan">
        <select class='btn'>
            <option value=''>语言</option>
            <option value='cn' {if $lang=='zh-cn'} selected="selected" {/if}>中</option>
            <option value='en' {if $lang=='en-us'} selected="selected" {/if}>ENG</option>
            <option value='vi' {if $lang=='vi'} selected="selected" {/if}>Tiếng Việt</option>
        </select>
       </div>
    <div class="formbox">
        <form name="AddUser" action="" id="registerForm" class="formrgister" method="get">
            <div class="input_box">
                <i class="iconfont icon-iconfontdianhua"></i>
     
                {if $smsid == 2} 
                <select class='area'>
                   {foreach $area as $v}
                        <option value='{$v.area}'>{:lang($v.areaname)}</option>
                    {/foreach}
                </select>
                {/if}                <input type="number" name="mobile" class="phone_number" placeholder="{:lang('输入手机号码')}" id="number"/>
            </div>
            <div class="input_box">
                <i class="iconfont icon-geren"></i>
                <input type="text" name="username" class="username" placeholder="{:lang('昵称')}" autocomplete="off"/>
            </div>
               <!--  <li><input type="text" name="captcha" id="captcha" placeholder="请输入验证码">
                <span class="yzm2"><img src="{:url('admin/login/captcha')}" alt="captcha" onclick="this.src='{:url("admin/login/captcha")}'+'?'+Math.random()" /></span></li> -->
<!--            <div class="input_box code_box" id="captcha-container">
                <span class="iconfont icon-verification-code"></span>
                <div class="input-code">
                    <input style="width: 100%;" name="verify" class="captcha-text" placeholder="{:lang('验证码')}"  id="j_verify" type="text">                  
                    <img alt="图形验证码" src="{:url('mobile/login/captcha')}" title="点击刷新" onclick="this.src='{:url(\'admin/login/captcha\')}'+'?'+Math.random()">
                </div>
            </div>-->
            <div class="input_box">
                <i class="iconfont icon-shouji"></i>
                <div class="phone-code">
                    <input style="width: 100%;" type="number" id="code" name="code" class="code" placeholder="{:lang('手机验证码')}" oncontextmenu="return false" onpaste="return false" />
                    <a href="javascript:void(0)" id="mycode" onclick="sendemail()">{:lang('获取手机验证码')}</a>
                </div>
            </div>
            <div class="input_box">
                <i class="iconfont icon-mima"></i>
                <input type="password" name="pwd" class="password" placeholder="{:lang('输入登录密码')}" oncontextmenu="return false" onpaste="return false" />
            </div>
            <div class="input_box">
                <i class="iconfont icon-mima1"></i>
                <input type="password" name="relogin_pwd" class="confirm_password" placeholder="{:lang('再次输入密码')}" oncontextmenu="return false" onpaste="return false" />
            </div>
            <div class="input_box">
                <i class="iconfont icon-shoujihao1"></i>
                <input type="text" name="parent_id" placeholder="{:lang('推荐人手机号码/UID')}" {if condition="$mobile != null"} disabled="disabled" value="{$mobile}" {else /} value="" {/if}>
            </div>
            <div class="input_box">
                <i class="iconfont icon-jiaoyimima"></i>
                <input type="password" name="safety_pwd" class="safety_pwd" placeholder="{:lang('交易密码')}" oncontextmenu="return false" onpaste="return false" />
            </div>
            <!-- <div id="embed-captcha"></div> -->
            <!-- <p id="wait" class="show">正在加载验证码......</p> -->
            <!-- <p id="notice" class="hide">请先完成验证</p> -->
            <!-- {:token()} -->
            <div  class="inde-btn">
                <button id="login_submit embed-submit" type="button" onclick="sendcode()">{:lang('注 册')}</button>
                <!-- <div class="submitbox"><input id="login_submit" type="button" value="立即开启"></div> -->
            </div>
        </form>
    </div>
    <div class="extra_reg">
         <a href="{:url('/mobile/login/login')}" class="inde-reg">{:lang('已经有账号?返回登录')}</a>
    </div>
</div>

解决方案 »

  1.   

    {/block}
    {block name="js"}
    <script type="text/javascript" src="__MOBILE__/js/jquery.validate.min.js"></script>
    <script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
    <script src="__MOBILE__/js/crowds.js"></script>
    <script src="__MOBILE__/js/gt.js"></script>
    <script>
        $('.btn').change(function(){
            var data={'lang':$('.btn').val()}
            console.log(data);
            $.get("{:url('mobile/Login/lang')}",data,function(){
                location.reload();
            })
        })    $(function(){
                $("input[type=text]").keyup(function(){
                     
                    if($("input[name=mobile]").val() !='' && $("input[name=code]").val() !='' ){
                        // $("#login_submit").css('background','linear-gradient(to right,#bd3dda,#3c13ce)')
                        $('#login_submit').attr("onclick", "sendcode()");
                    }else{
                        // $("#login_submit").css('background','#2e2a43')
                    }
                });
        })
    </script>
    <script>
            var countdown=60; 
                function sendemail(){
                    var nickname= $('input[name=username]').val();
                    var mobile= $('input[name=mobile]').val();
                    var pwd= $('input[name=pwd]').val();
                    var verify= $('input[name=verify]').val();
                    var area=$('.area').val();
                    var geetest_challenge = $('input[name=geetest_challenge]').val();
                    var geetest_validate = $('input[name=geetest_validate]').val();
                    var geetest_seccode = $('input[name=geetest_seccode]').val();
                    console.log(area);
                    
                    if(nickname==''){
                         msg_alert('{:lang("请输入昵称")}!');
                    }else{
                        // if(!(/^1[3|4|5|7|8][0-9]\d{4,8}$/.test(number))){
                        if(mobile==''){
                                msg_alert('{:lang("请输入手机号")}!');
                        }else if(verify==''){
                                msg_alert('{:lang("请输入验证码")}!');
                        }else if(area==''){
                                msg_alert('{:lang("请输入区号")}!');       
                        }
                    }            }            function settime(obj) { //发送验证码倒计时
                    if (countdown == 0) {
                        obj.attr("onclick", "sendemail()");
                        //obj.removeattr("disabled"); 
                        obj.html("{:lang('获取手机验证码')}");
                        countdown = 60; 
                        return;
                    } else { 
                        obj.attr("onclick", "null");
                        obj.html("{:lang('重新发送')}(" + countdown + ")");
                        countdown--; 
                    } 
                setTimeout(function() { 
                    settime(obj) }
                    ,1000) 
                }</script>
    <script>
        var handlerEmbed = function (captchaObj) {
            $("#embed-submit").click(function (e) {
                var validate = captchaObj.getValidate();
                if (!validate) {
                    $("#notice")[0].className = "show";
                    setTimeout(function () {
                        $("#notice")[0].className = "hide";
                    }, 2000);
                    e.preventDefault();
                }
            });
            // 将验证码加到id为captcha的元素里,同时会有三个input的值:geetest_challenge, geetest_validate, geetest_seccode
            captchaObj.appendTo("#embed-captcha");
            captchaObj.onReady(function () {
                $("#wait")[0].className = "hide";
            });
            // 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html
        };
        var server_name = '{$server_name}';
        $.ajax({        // 获取id,challenge,success(是否启用failback)
            url: server_name+"/mobile/login/jiyan?t=" + (new Date()).getTime(), // 加随机数防止缓存
            type: "get",
            dataType: "json",
            success: function (data) {
                console.log(data);
                // 使用initGeetest接口
                // 参数1:配置参数
                // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
                initGeetest({
                    gt: data.gt,
                    challenge: data.challenge,
                    new_captcha: data.new_captcha,
                    product: "embed", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效
                    offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注
                    // 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
                }, handlerEmbed);
            }
        });
            function sendcode(){
                var phone= $('input[name=mobile]').val();
                var pwd= $('input[name=pwd]').val();
                var relogin_pwd= $('input[name=relogin_pwd]').val();
                var code= $('input[name=code]').val();
                var parent_id= $('input[name=parent_id]').val();
                var nickname= $('input[name=username]').val();
                var safety_pwd= $('input[name=safety_pwd]').val();
                var geetest_challenge = $('input[name=geetest_challenge]').val();
                var geetest_validate = $('input[name=geetest_validate]').val();
                var geetest_seccode = $('input[name=geetest_seccode]').val();
                if(pwd != relogin_pwd){
                   msg_alert('{:lang("两次输入密码不一致")}!');
                   return false;
                }else if(pwd=='' || !(/^.{6,}$/.test(pwd))){
                   msg_alert('{:lang("请输入6位密码")}!');
                   return false;
                }else if(!(/^\d{6}\b/).test(safety_pwd)){
                   msg_alert('{:lang("交易密码只能为6位数")}');
                   return false;
                }else if(parent_id == ''){
                   msg_alert('{:lang("请输入推荐人")}'); 
                   return false;
                }else{            //    $('input[name=relogin_pwd]').next('span').html("");
                   $.post("{:url('/mobile/login/doregister')}",{code:code,phone:phone,pwd:pwd,parent_id:parent_id,nickname:nickname,safety_pwd:safety_pwd,geetest_challenge:geetest_challenge,geetest_validate:geetest_validate,geetest_seccode:geetest_seccode},function(data){
                        if(data.code==1){
                            msg_alert_url(data.msg,data.url);
                        }else{
                            msg_alert(data.msg);
                        }   
                    })
                }
             }
    </script>