form表单与模板引擎

  • 一、form表单的基本使用
    • 1.1 什么是表单
    • 1.2 表单的组成部分
    • 1.3 <form>标签的属性
    • 1.4 表单的同步提交及缺点
  • 二、通过ajax提交表单数据
    • 2.1 监听表单提交事件
    • 2.2 阻止表单默认提交行为
    • 2.3 快速获取表单中的数据serialize
  • 三、案例-评论列表
  • 四、模板引擎的基本概念
    • 4.1 渲染UI结构时遇到的问题
    • 4.2 什么是模板引擎
    • 4.3 模板引擎的好处
  • 五、art-template模板引擎
    • 5.1 art-template简介
    • 5.2 art-template的安装
    • 5.3 art-template模板引擎的基本使用
    • 5.4 art-template标准语法
  • 六、模板引擎的实现原理
    • 6.1 正则与字符串操作
    • 6.2 实现简易的模板引擎

一、form表单的基本使用

1.1 什么是表单

☀️

表单在网页中主要负责数据采集功能。HTML中的<form>标签,就是用于采集用户输入的信息,并通过<form>标签的提交操作,把采集到的信息提交到服务器端进行处理。

1.2 表单的组成部分

1.3 标签的属性






  <form action="/login" target="_blank" method="post"><input type="text" name="email_or_mobile" /><input type="password" name="password" /><button type="submit">提交</button></form>

1.4 表单的同步提交及缺点



  <form action="/login" target="_blank" method="post"><input type="text" name="email_or_mobile" /><input type="password" name="password" /><button type="submit">提交</button></form>

二、通过ajax提交表单数据

2.1 监听表单提交事件

☀️

  <form action="/login" id="f1"><input type="text" name="user_name" /><input type="password" name="password" /><button type="submit">提交</button></form><script>$(function () {// 第一种方式// $('#f1').submit(function () {//   alert('监听到了表单的提交事件')// })// 第二种方式$('#f1').on('submit', function () {  alert('监听到了表单的提交事件2')})})</script>

2.2 阻止表单默认提交行为

  <form action="/login" id="f1"><input type="text" name="user_name" /><input type="password" name="password" /><button type="submit">提交</button></form><script>$(function () {// 第一种方式// $('#f1').submit(function () {//   alert('监听到了表单的提交事件')// })// 第二种方式$('#f1').on('submit', function () {  alert('监听到了表单的提交事件2')})})</script>

2.3 快速获取表单中的数据serialize


  <form action="/login" id="f1"><input type="text" name="user_name" /><input type="password" name="password" /><button type="submit">提交</button></form><script>$(function () {// 第一种方式// $('#f1').submit(function (e) {//   alert('监听到了表单的提交事件')//   e.preventDefault()// })// 第二种方式$('#f1').on('submit', function (e) {  alert('监听到了表单的提交事件2')e.preventDefault()})})</script>

三、案例-评论列表

☀️

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><link rel="stylesheet" href="./lib/bootstrap.css" /><script src="./lib/jquery.js"></script><script src="./js/cmt.js"></script>
</head><body style="padding: 15px;"><!-- 评论面板 --><div class="panel panel-primary"><div class="panel-heading"><h3 class="panel-title">发表评论</h3></div><form class="panel-body" id="formAddCmt"><div>评论人:</div><input type="text" class="form-control" name="username" autocomplete="off" /><div>评论内容:</div><textarea class="form-control" name="content"></textarea><button type="submit" class="btn btn-primary">发表评论</button></form></div><!-- 评论列表 --><ul class="list-group" id="cmt-list"><li class="list-group-item"><span class="badge" style="background-color: #F0AD4E;">评论时间:</span><span class="badge" style="background-color: #5BC0DE;">评论人:</span></li></ul></body></html>

四、模板引擎的基本概念

4.1 渲染UI结构时遇到的问题

☀️

4.2 什么是模板引擎

4.3 模板引擎的好处

  1. 减少了字符串的拼接操作
  2. 使代码结构更清晰
  3. 使代码更易于阅读与维护

五、art-template模板引擎

5.1 art-template简介

☀️

art-template 是一个简约、超快的模板引擎。中文官网首页为
art-template地址

5.2 art-template的安装

在浏览器中访问 http://aui.github.io/art-template/zh-cn/docs/installation.html 页面,找到下载链接后,鼠标右键,选择“链接另存为”,将 art-template 下载到本地,然后,通过 <script> 标签加载到网页上进行使用。

5.3 art-template模板引擎的基本使用


5.4 art-template标准语法

art-template 提供了 {{ }} 这种语法格式,在 {{ }} 内可以进行变量输出,或循环数组等操作,这种 {{ }} 语法在 art-template 中被称为标准语法。







传统方式渲染UI结构

  <div id="title"></div><div>姓名:<span id="name"></span></div><div>年龄:<span id="age"></span></div><div>会员:<span id="isVIP"></span></div><div>注册时间:<span id="regTime"></span></div><div>爱好:<ul id="hobby"><li>爱好1</li><li>爱好2</li></ul></div><script>var data = {title: '<h3>用户信息</h3>',name: 'zs',age: 20,isVIP: true,regTime: new Date(),hobby: ['吃饭', '睡觉', '打豆豆']}$(function () {$('#name').html(data.name)$('#title').html(data.title)$('#age').html(data.age)$('#isVIP').html(data.isVIP)$('#regTime').html(data.regTime)var rows = []$.each(data.hobby, function (i, item) {rows.push('<li>' + item + '</li>')})$('#hobby').html(rows.join(''))})</script>

模板

 <div id="title"></div><div>姓名:<span id="name"></span></div><div>年龄:<span id="age"></span></div><div>会员:<span id="isVIP"></span></div><div>注册时间:<span id="regTime"></span></div><div>爱好:<ul id="hobby"><li>爱好1</li><li>爱好2</li></ul></div><script>var data = {title: '<h3>用户信息</h3>',name: 'zs',age: 20,isVIP: true,regTime: new Date(),hobby: ['吃饭', '睡觉', '打豆豆']}$(function () {$('#name').html(data.name)$('#title').html(data.title)$('#age').html(data.age)$('#isVIP').html(data.isVIP)$('#regTime').html(data.regTime)var rows = []$.each(data.hobby, function (i, item) {rows.push('<li>' + item + '</li>')})$('#hobby').html(rows.join(''))})</script>

六、模板引擎的实现原理

6.1 正则与字符串操作

☀️

  <script>var str = 'hello'var pattern = /x/var result = pattern.exec(str)console.log(result)</script>

  <script>var str = 'hello'var pattern = /x/var result = pattern.exec(str)console.log(result)</script>

  <script>var str = '<div>我是{{name}}</div>'var pattern = /{{([a-zA-Z]+)}}/var result = pattern.exec(str)console.log(result)</script>

  <script>var str = '<div>我是{{name}}</div>'var pattern = /{{([a-zA-Z]+)}}/var patternResult = pattern.exec(str)// console.log(patternResult)str = str.replace(patternResult[0], patternResult[1])console.log(str)</script>

 <script>var str = '<div>{{name}}今年{{ age }}岁了</div>'var pattern = /{{\s*([a-zA-Z]+)\s*}}/// 第一次匹配var res1 = pattern.exec(str)str = str.replace(res1[0], res1[1])console.log(str)// 第二次匹配var res2 = pattern.exec(str)str = str.replace(res2[0], res2[1])console.log(str)// 第三次匹配var res3 = pattern.exec(str)console.log(res3)</script>

  <script>var str = '<div>{{name}}今年{{ age }}岁了</div>'var pattern = /{{\s*([a-zA-Z]+)\s*}}/var patternResult = nullwhile (patternResult = pattern.exec(str)) {str = str.replace(patternResult[0], patternResult[1])}console.log(str)</script>

6.2 实现简易的模板引擎





  <script>var data = { name: '张三', age: 20 }var str = '<div>{{name}}今年{{ age }}岁了</div>'var pattern = /{{\s*([a-zA-Z]+)\s*}}/var patternResult = nullwhile (patternResult = pattern.exec(str)) {str = str.replace(patternResult[0], data[patternResult[1]])}console.log(str)</script>

form表单与模板引擎相关推荐

  1. 前端_网页编程 Form表单与模板引擎(下)

    目录 续上一篇 6. 模板引擎的实现原理 6.1 正则与字符串操作 6.1.1 基本语法 6.1.2 分组 6.1.3 字符串的replace函数 6.1.4 多次replace 6.1.5 使用wh ...

  2. 前端_网页编程 Form表单与模板引擎(中)

    目录 ... ... (续上篇) 四.模板引擎的基本概念 1.定义 2. 优点 五.art-template模板引擎 1.art-template模板引擎介绍 2. art-template的安装 3 ...

  3. 前端_网页编程 Form表单与模板引擎(上)

    目录 一.form表单的基本使用 1. 什么是表单? 2. 表单的组成部分 3. < form>标签的基本属性 3.1 action 3.2 target 3.3 method 3.4 e ...

  4. Form表单及模板引擎

    Form表单及模板引擎 什么是Form表单 Form表单的一些属性 表单的同步提交及优缺点 通过Ajax提交表单数据 JQuery的监听表单提交事件 取消表单默认提交行为 快速获取表单中的数据 模板引 ...

  5. 前后端交互之form表单和模板引擎

    目录 一.Form表单 1.1 标签属性 1.1.1 action 1.1.2 target 1.1.3 method 1.1.4 enctype 1.2 表单的同步提交及缺点 1.3 通过Ajax提 ...

  6. 前后端交互:form表单与模板引擎

    目录 form表单 基础知识 概念 组成 常用属性 表单同步提交 概念 缺点 表单事件监听 submit监听方式 on监听方式 阻止表单默认行为 serialize 快速获取表单提交的数据 模板引擎 ...

  7. 【前端】Ajax-form表单与模板引擎

    目录 一.form表单的基本使用 1.1什么是表单 1.2表单的组成部分 1.3form标签属性 1.4表单的同步提交及缺点 1.4.1什么是表单的同步提交 1.4.2表单同步提交的缺点 1.4.3如 ...

  8. django之:网页伪静态 JsonResponse form表单携带文件数据 CBV源码分析 模板语法传值 模板语法之过滤器 标签 自定义标签函数 过滤器、inclusion_tag模板的继承导入

    目录标题 一:网页伪静态 1.定义 2.如何实现 二:视图层 1.视图函数返回值问题 2.视图层返回json格式的数据 3.form表单携带文件数据 4.CBV源码分析 1.CBV和FBV: 2.CB ...

  9. java_web1:基本标签、form表单、frameset框架标签、CSS样式、javascript、servlet

    前端三剑客: html,css,js(javascript) html: Hyper Text Markup Language:超文本标记语言 针对字体,图片,视频,音频等等进行操作,设置字体颜色,大 ...

最新文章

  1. 1、为什么使用Long时,推荐多使用valueOf方法,少使用parseLong方法
  2. ubuntu截图工具
  3. java微信群自动回复_微信自动回复机器人选哪个好?参考这四点
  4. 6、JUC--同步锁Lock
  5. Spring的Bean实例化、属性注入、对象注入、复杂注入(基于xml配置方式)
  6. 【POJ - 3041】Asteroids (二分图,最小点覆盖)
  7. Android File数据存储
  8. 19春学期《计算机应用基础》123,福师11春学期《计算机应用基础》在线作业一...
  9. 模拟linux内核异常,Linux内核异常
  10. Mac电脑「空格键」的妙用,原来有这么多功能
  11. 加载对话框Android,Android实现加载对话框
  12. AlphaGo围棋论文中文翻译
  13. 讨论:男孩为何要找比自己小的女孩?
  14. 恶魔奶爸语法10-12课
  15. canvas 画线条
  16. 读书笔记_《统计陷阱》达莱尔.哈夫
  17. python字符串居中对齐_Python center()字符串居中对齐方法详解
  18. VirtualBox 搭建虚拟环境
  19. Kafka消费组rebalance原理
  20. 常用快捷键,不积硅步无以至千里

热门文章

  1. Navigation框架介绍
  2. Android :高德地图demo
  3. cad旋转命令_如何将CAD图形旋转至水平位置?
  4. Redis 在windows中启动
  5. Kafka学习笔记——使用Kafka记录APP的操作日志
  6. RLHF:基于人类反馈(Human Feedback)对语言模型进行强化学习【Reinforcement Learning from Human Feedback】
  7. java 面试题带答案,大量教程
  8. 汽车行业V模型开发详解
  9. java常见面试题(一)
  10. 解决Unknown resampling filter (64). Use Image.NEAREST (0), Image.LANCZOS (1), Image.BILINEAR (2), Imag