簡體   English   中英

解析數據和Javascript / HTML表單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM