使用 Parse Javascript SDK 注册用户

Registering users with Parse Javascript SDK

以下是我的表单模板,它加载在我的 register.html 页面的页眉中,并显示在 div #register-tpl 中。它显示正常。系统提示用户使用用户名、电子邮件和密码进行注册:

<script id="register-tpl" type="text/x-handlebars-template">
    <form class="form-register" role="form">
        <h1>Sign up!</h1>
        <h2><span class="typcn typcn-user-add"></span>&nbsp;Create an account</h2>
        <p><input type="text" id="username" name="username" class="form-control" placeholder="Username" required="" autofocus=""></p>
        <p><input type="password" id="password" name="password" class="form-control" placeholder="Password" required=""></p>
        <p><input type="text" id="email" name="email" class="form-control" placeholder="Email" required="" autofocus=""></p>
        <p><button class="button" type="submit">Sign up</button></p>
        <p>Already have an account? <a class="app-link" href="admin.html">Log in!</a></p>
    </form>
</script>

以下是我的 Javascript 向数据库添加新用户的代码:

                var RegisterView = Parse.View.extend({
                template: Handlebars.compile($('#register-tpl').html()),
                events: {
                    'submit .form-register': 'register'
                },
                register: function(e) {

                    e.preventDefault();

                    var username = document.getElementById('username').value;     
                    var password = document.getElementById('password').value;
                    var email = document.getElementById('input').value;

                    var user = new Parse.User();
                    user.set("username", username);
                    user.set("password", password);
                    user.set("email", email);

                    user.signUp(username, password, email, {

                        success: function(user) {
                            var welcomeView = new WelcomeView({ model: user });
                            welcomeView.render();
                            $('.register-container').html(welcomeView.el);
                        },

                        error: function(user, error) {
                            console.log(error);
                        }
                    });
                },
                render: function(){
                    this.$el.html(this.template());
                }
            });

有谁知道为什么没有提交所需的信息?它甚至无法识别在我的 Parse 仪表板上创建新用户。这里有什么根本性的缺陷吗?谢谢,非常感谢所有帮助!

解决方案涉及指定要在成功回调中提交的表单:document.getElementById("user-add").submit()。我在设置字段变量时也有一个常见的拼写错误。它应该读作 var username = form.username.value;而不是用户名 = document.username.value;!

            var RegisterView = Parse.View.extend({
                template: Handlebars.compile($('#register-tpl').html()),
                events: {
                    'submit .user-add': 'register'
                },
                register: function(e){
                    e.preventDefault();

                    user = new Parse.User();

                    var form = document.getElementById("user-add");

                    var username = form.username.value;
                    var password = form.password.value;
                    var email = form.email.value;

                    user.set("username", username);
                    user.set("password", password);
                    user.set("email", email);

                    user.signUp(null, {
                        success: function(user) {
                            form.submit();
                            window.location.href = 'admin.html';
                        },
                        error: function(user, error) {
                            alert("Error: " + error.code + " " + error.message);
                        }
                    });
                },
                render: function(){
                    this.$el.html(this.template());
                }
            });