当前位置: 首页 > news >正文

Meteor的表单提交:Form

Meteor中的form

在web中时时刻刻都不能离开form,表单提交,来看看在meteor里面如何提交表单吧!
首先是 HTML:

<head>
    <title>meteor-form</title>
</head>

<body>
<h2>form</h2>
<div class="container">
    <form class="new-language">
        <input type="text" name="text" placeholder="add language"/>
        <input type="submit" value="Submit"/>
    </form>
</div>
<h2>Welcome to Meteor!</h2>

{{> meteor_collection }}

</body>

<template name="meteor_collection">
    {{#each languages}}
        <h3>{{name}}</h3>
    {{/each}}
</template>

这里我们定义了一个表单,class为new-lanuage,有一个text的 input还有一个提交的按钮。下面的模板meteor_collection是用来显示的。

给表单添加事件

if (Meteor.isClient) {

    Template.meteor_collection.helpers({
        languages: Languages.find({}, {sort: {createdAt: -1}})
    });

    Template.body.events({
        'submit .new-language': function (event) {
            event.preventDefault()
            var text = event.target.text.value
            console.log(event)
            Languages.insert({
                name: text,
                createdAt: new Date()
            })
            event.target.text.value = ""
        }
    });

}

使用Template.templateName.events(...)可以给模板添加事件 ,可以是submit,click ,hover...,function里面可以做相应的处理,这里使用.new-language是css的选择器,用来指定form.
event是事件提交的参数,包括事件提交的所有内容。
可以使用consloe.log(event)在浏览器中看到event的属性:

图片描述

对结果排序

在插入的时候,多加了一个字段createdAt,我们可以按照时间的倒序对 languages进行排序:

languages: Languages.find({}, {sort: {createdAt: -1}})

使用meteor run 运行项目之后 ,可以打开两个浏览器,在其中一个浏览器中添加一个语言,就能在另一个浏览器中立刻看到。

项目地址:https://github.com/jjz/meteor/tree/master/meteor-form

相关文章:

  • 设置全局git忽略文件 gitconfig
  • SQLServer中查询表结构(表主键 、列说明、列数据类型、所有表名)的Sql语句
  • 集合的划分(递归)
  • CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
  • 函数分析题
  • 使用 Kanban精益创新
  • Override使用对象
  • android studio 2 3 的maven坑
  • SSM框架
  • 内核定时器的简单应用
  • python编程笔记--字符编码
  • 增、删、改、查,数据库和表操作
  • Confluence 6 管理和恢复空间管理权限
  • iOS 系统授权开发
  • Kubernetes首爆严重安全漏洞,请升级你的Kubernetes
  • JavaWeb(学习笔记二)
  • MySQL主从复制读写分离及奇怪的问题
  • Promise初体验
  • Redis在Web项目中的应用与实践
  • scrapy学习之路4(itemloder的使用)
  • Vue 重置组件到初始状态
  • vue中实现单选
  • 近期前端发展计划
  • 树莓派 - 使用须知
  • 温故知新之javascript面向对象
  • 线上 python http server profile 实践
  • 异常机制详解
  • 译米田引理
  • 怎么将电脑中的声音录制成WAV格式
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • #Lua:Lua调用C++生成的DLL库
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (Java)【深基9.例1】选举学生会
  • (JS基础)String 类型
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (译)2019年前端性能优化清单 — 下篇
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)甲方乙方——赵民谈找工作
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET多线程执行函数
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .NET下的多线程编程—1-线程机制概述