Javascript 在没有ajax的meteor中,如何使用post方法提交表单?
我对meteor的理解是,表单提交不需要ajax,但是我想知道如何处理Javascript 在没有ajax的meteor中,如何使用post方法提交表单?,javascript,forms,post,meteor,Javascript,Forms,Post,Meteor,我对meteor的理解是,表单提交不需要ajax,但是我想知道如何处理Template.form.event提交表单事件,并在javascript中进行POST rest提交,这样页面就不会继续发送到动作目的地,而只是发送数据并停留在页面上。在没有ajax的情况下,如何在javascript中发布帖子。我想有一个明显的答案,只是我似乎想不起来。我需要安装rest软件包吗 我不想运行表单操作,而是将其传递到javascript并通过POST发送,而不用在METEOR中刷新页面 这是表格 <f
Template.form.event
提交表单事件,并在javascript中进行POST rest提交,这样页面就不会继续发送到动作目的地,而只是发送数据并停留在页面上。在没有ajax的情况下,如何在javascript中发布帖子。我想有一个明显的答案,只是我似乎想不起来。我需要安装rest软件包吗
我不想运行表单操作,而是将其传递到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 DDP协议,使用Meteor方法 首先,定义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);
}
});
嗯,如果你不能使用Ajax,那么你可以发布到一个新窗口或一个隐藏的iframe。我可以使用Ajax,我只是假设Meteor不需要Ajax.catch事件,而不是Ajax,使用Meteor.methods?因为它不需要,所以你可以阻止表单加载,就像这个“点击表单”:函数(e){e.preventDefault();}你有很多关于如何通过meteor从html中获取数据的教程