使用 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> 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());
}
});
以下是我的表单模板,它加载在我的 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> 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());
}
});