簡體   English   中英

如何在不帶Ajax的流星中提交帶有post方法的表單?

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

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