zoukankan      html  css  js  c++  java
  • CodingSouls团队-个人博客(三)

    今天是团队开发冲刺的第三天:

          今天我的任务是完成STDOJ的注册界面。有效编程时间3.5小时,代码行数:114行

       

    <% this.title = '注册' %>
    <% include header %>
    <div class="padding">
      <h1>注册</h1>
      <div class="ui error message" id="error" data-am-alert hidden>
        <p id="error_info"></p>
      </div>
              <form class="ui form">
                    <div class="field">
                        <label for="username">用户名</label>
                        <input type="text" placeholder="" id="username">
                    </div>
                    <div class="field">
                        <label for="email">邮箱</label>
                        <input type="email" placeholder="" id="email">
                    </div>
                    <div class="two fields">
                        <div class="field">
                        <label class="ui header">密码</label>
                          <input type="password" placeholder="" id="password1">
                        </div>
                        <div class="field">
                          <label class="ui header">确认密码</label>
                          <input type="password" placeholder="" id="password2">
                        </div>
                    </div>
                    <a id="sign_up" class="ui button" href="javascript:submit();">注册</a>
                </form>
    </div>
    <script src="<%- lib('blueimp-md5/2.10.0/js/md5.min.js') %>"></script>
    <script type="text/javascript">
    function show_error(error) {
        $("#error_info").text(error);
        $("#error").show();
    }
    
    function success() {
        alert("注册成功!");
        window.location.href = location.protocol + '//' + location.host + <%- serializejs(req.query.url || '/') %>;
    }
    
    function mail_required() {
        alert("注册确认邮件已经发送到您的邮箱的垃圾箱,点击邮件内的链接即可完成注册。");
        var s = $("#email").val();
        var mailWebsite = 'https://mail.' + s.substring(s.indexOf('@') + 1, s.length);
        if (mailWebsite === 'https://mail.gmail.com') mailWebsite = 'https://mail.google.com';
        window.location.href = mailWebsite;
    }
    
    function submit() {
        if ($("#password1").val() != $("#password2").val()) {
            show_error("两次输入的密码不一致");
            return;
        }
        password = md5($("#password1").val() + "syzoj2_xxx")
        $("#sign_up").addClass("loading");
        $.ajax({
            url: '/api/sign_up',
            type: 'POST',
            async: true,
            data: {
              username: $("#username").val(),
              password: password,
              email: $("#email").val(),
              prevUrl: <%- serializejs(req.query.url || '/') %>
            },
            success: function(data) {
                error_code = data.error_code;
                switch(error_code){
                    case 2001:
                        show_error("服务器未收到数据");
                        break;
                    case 2005:
                    case 2002:
                        show_error("用户名需要大于 3 个字符小于 16 个字符,仅允许字母数字和下划线");
                        break;
                    case 2007:
                    case 2003:
                        show_error("密码不得为空");
                        break;
                    case 2004:
                    case 2006:
                        show_error("请输入正确的邮箱");
                        break;
                    case 2008:
                        show_error("已经有人用过这个用户名了");
                        break;
                    case 2009:
                        show_error("邮箱地址已被占用");
                        break;
                    case 2010:
                        show_error("验证邮件发送失败:
    " + data.message);
                        break;
                    case 1:
                        success();
                        break;
                    case 2:
                        mail_required();
                        break;
                    default:
                        show_error("未知错误:" + JSON.stringify(data));
                        break;
                }
                $("#sign_up").removeClass("loading");
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest.responseText);
                show_error("未知错误");
                $("#sign_up").removeClass("loading");
            }
        });
    }
    </script>
    <% include footer %>
    

      

  • 相关阅读:
    taro 填坑之路(一)taro 项目回顾
    Redux遵循的三个原则是什么?
    解释一下 Flux
    MVC框架的主要问题是什么?
    与 ES5 相比,React 的 ES6 语法有何不同?
    你了解 Virtual DOM 吗?解释一下它的工作原理
    DOM 事件有哪些阶段?谈谈对事件代理的理解
    CSS:用Less实现栅格系统
    .NET:国际化和本地化
    自定义工作流 之 模型设计与实现
  • 原文地址:https://www.cnblogs.com/zwx655/p/12781941.html
Copyright © 2011-2022 走看看