[英]How do I submit a form with a post method in meteor without ajax?
我對流星的理解是表單提交不需要ajax,但是我想知道如何處理Template.form.event
提交表單事件並在javascript中進行POST其余提交,因此頁面不會繼續到達操作目標它只是發送數據並停留在頁面上。 我如何在沒有ajax的javascript中進行POST。 我認為有一個明顯的答案,就是似乎無法想到。 我需要安裝休息包嗎?
我不希望表單動作被運行,而是傳遞到javascript中並通過POST發送,而不刷新METEOR中的頁面。
這是表格
<form accept-charset="UTF-8" action="https://formkeep.com/f/randomnumbers" method="POST" id="contact-form">
<input type="hidden" name="utf8" value="✓">
<input type="text" placeholder="Name">
<input type="phone" placeholder="Phone Number">
<input type="email" placeholder="Your Email">
</form>
假設您不需要使用AJAX來執行表單請求提交是正確的,則應該使用Meteor方法,而應使用Meteor DDP協議。
首先,定義您的Meteor方法以執行所需的操作,下面是一個示例:
Meteor.methods({
addContact: function(contact){
check(contact, {
name: String,
phoneNumber: String,
email: String
});
//
return Contacts.insert(contact);
}
});
在檢查參數格式正確后,此方法只是將聯系人添加到集合中。
接下來,您需要在表單提交事件處理程序中調用此方法,如下所示:
Template.myForm.events({
"submit": function(event, template){
// prevent default form submission handler : which is
// performing an HTTP POST request that will reload the page
event.preventDefault();
// construct the contact object that will be passed to the method
var contact = {
// assuming each input fields have ids attribute
name: template.$("#name").val(),
phoneNumber: template.$("#phoneNumber").val(),
email: template.$("#email").val(),
};
// perform the server-side asynchronous call
Meteor.call("addContact",contact);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.