[英]Parse Data and Javascript/HTML Form
我正在使用Parse的Data模塊。 我正在使用HTML創建電子郵件表單。 我使用Javascript獲取表單數據(電子郵件),然后從電子郵件地址生成用戶名。 然后,此信息將保存到Parse數據庫中。
這是HTML表單代碼:
<form method="post" class="center">
<input id="email" name="email" type="email" placeholder="Type your email to create a Mail Link" />
<button id="submit" onclick="formSubmit();">Create</button>
</form>
這是Javascript:
function formSubmit() {
var emailValue = document.getElementById("email").value;
var userValue = emailValue.substr(0, emailValue.indexOf('@'));
Parse.initialize("---KEY---", "---KEY---");
var Users = Parse.Object.extend("Users");
var users = new Users();
users.save({username: userValue}).then(function(object) {
alert("Saved user");
});
users.save({email: emailValue}).then(function(object) {
alert("Saved email");
});
}
問題在於控制台顯示已保存值,但是數據未保存到Parse中。
任何想法將不勝感激!
在可以將按鈕變成一個簡單的按鈕中,無需將按鈕更改為您所提到的鏈接中提到的按鈕,您的代碼即可正常工作。
您已經在保存用戶數據之后編寫了.then()方法,但是實際上在實現諾言時調用它來運行回調。
但是這里您使用的是簡單的Parse.Object,因此要么使用Parse.Promise,要么在以下情況下僅想使用簡單的Parse.Object:-
users.save({
username: "Jake Cutter"
}, {
success: function(userObject) {
alert('The save was successful');
},
error: function(userObject, error) {
// The save failed. Error is an instance of Parse.Error.
// Do something if you want to do on error
}
});
有關詳細信息,您可以檢查: -https : //www.parse.com/docs/js/symbols/Parse.Object.html#save https://www.parse.com/docs/js/symbols/Parse.Promise。 HTML#然后
好的,我授予Indra賞金,但這是有關更多情況的完整答案。 這是一個煩人的問題,但是您可以解決它。
首先,表單應使用onsubmit。
<form method="post" onsubmit="formSubmit();">
其次,您的函數應使用Indra方法保存數據。 但是,您需要event.preventDefault();
在它之前。
event.preventDefault();
userList.save({
username: "Peter Adams"
}, {
success: function(userList) {
alert('Success');
},
error: function(userList, error) {
alert('Failed to create new object, with error code: ' + error.message);
}
});
您可以使用jquery存儲表單值並創建parse類的子類 ,還可以使用新的parse對象將值存儲在parse中。
例:
<form id="contact-form" >
First name:<br>
<input type="text" name="firstname" id="firstname">
<br>
Last name:<br>
<input type="text" name="lastname" id="lastname">
email:<br>
<input type="text" name="email" id="email">
<a href="/access2"><input type="submit" value="Get Access" /></a>
</form>
JavaScript代碼:
Parse.initialize("--KEY--", "--KEY--");
var Subscribers = Parse.Object.extend('Subscribers'); //create local parse object from your Parse class
$('#contact-form').submit(function(e) {
//on form submit
e.preventDefault();
//get data from form
var data = {
firstname: $("#firstname").val(),
lastname: $("#lastname").val(),
email: $("#email").val()
};
//create new Parse object
subscribers = new Subscribers();
//match the key values from the form, to your parse class, then save it
subscribers.save(data, {
//if successful
success: function(parseObj) {
alert(subscribers.get('firstname') + " " + subscribers.get('lastname') + " " + subscribers.get('email') + " saved to Parse.")
}
,
error: function(parseObj, error) {
console.log(parseObj);
console.log(error);
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.