Ajax(二)表单的使用和art-template模版引擎

Ajax(二)表单的使用和art-template模版引擎

一、表单的基本使用

1、什么是表单(form)

form 表单主要是用来采集用户的信息

2、表单的组成部分

<form >
        <!-- 文本域 -->
        <input type="text" placeholder="请输入用户名" name="uname">
        <input type="password" placeholder="请输入密码" name="password">
        <input type="checkbox" name="remember" checked>

        <!-- 提交按钮 -->
        <input type="submit" value="提交">
    </form>
  • 表单标签
  • 表单域:包含了文本框,密码框,隐藏域,都行文本框,复选框,单选框,下拉选择框和文件上传框等等(隐藏域(hidden)、文件上传框(file)、复选框(checkbox))
  • 表单按钮:通过设置type属性为submit来触发form表单的提交

3、表单的标签属性

  1. action 属性

    ​ 决定了表单的数据提交到何处, 一般是一个 url 地址; 如果没有指定, 默认提交到当前页面

  2. target 属性

    ​ 规定了在何处打开 url, 默认值是 _self (当前标签页), _blank 表示在新标签页打开

  3. method 属性

    ​ 使用何种方式把表单数据提交到 url, 默认的方式是 GET 方式, 还可以指定 POST 提交

  4. get 和 post 提交数据的特点

    ​ 简单的数据提交使用 get, 复杂或隐蔽的数据使用 post

  5. enctype 属性 (编码方式)

    规定了在发送表单数据之前如何对数据进行编码

    默认是: (1) application/x-www-form-urlencoded 表示在发送前编码所有的字符(默认)

    (2) multipart/form-data 不对字符进行编码, 在传输文件时必须使用这个值(二进制,文件上传)

    (3) text/plain 空格转成 + 号, 不对特殊字符进行编码 (少用)

4、表单的同步提交及缺点

  • 表单的同步提交

通过点击 submit 按钮,触发表单提交的操作,从而使页面跳转到 action URL 的行为,叫做表单的同步提交

  • 缺点:
  1. 页面会刷新

  2. 页面之前的数据和状态会丢失

  • 解决:

    使用 Ajax 提交数据, 表单只负责采集数据, 页面不会自动刷新

二、Ajax提交表单数据

1、监听表单提交事件

  • 两种方法都可:
$('form').submit(function(e){
    alert('监听到了表单提交事件');
});

$('form').on('submit',function(e){
    alert('监听到了表单提交事件');
});

2、阻止表单默认提交行为

调用event.preventDefault()函数,来阻止表单的提交和页面跳转。

 $('form').submit(function(e) {
                e.preventDefault(); //组织默认事件
 })

3、快速获取表单数据

serialize() 函数,可以一次性获取表单数据。

$('form').serialize();
//username=abc&password=123

注意:在使用 serialize() 函数快速获取表单数据时,必须为每个表单元素添加 name 属性

三、art-template模版引擎

1、简介

art-template 是一个简约,超快的模板引擎,中文官首页:http://aui.github.io/art-template/zh-cn/index.html

  • 作用:

    实现模板 (HTML结构) 和 数据对象的拼接

2、安装

3、基本使用

1> 引入插件

2> 定义数据对象

3> 定义模板结构

<scripte type="text/html" id="tpl">
    //code
    </script>

4> 调用模板方法实现拼接

  • template(id, obj)

5> 渲染拼接好的 HTML 字符串

4、好处

(1) 代码结构清晰 (2) 减少字符串拼接 (3) 使代码易于维护

5、模版引擎语法

  1. 所有的变量和表达式, 使用双花括号包裹, 进行输出 {{ true ? ‘a’ : ‘b’ }}

  2. 原文输出 {{@value}}

  3. 条件输出

    {{if value}}

    {{else if value}}

    {{/if}}

  4. 遍历输出

    {{each target}}

​ {{$index}}

​ {{$value}}

{{/each}}

<script type='text/html' id='11'>
        <p>{{name}}</p>
        <p>{{num-5}}</p>
        <p>{{color?'黄色':'绿色'}}</p>
        <!-- 输出原来的<h3>爱吃香蕉</h3> -->
        <p>{{@info}}</p>
        <!-- 条件输出  -->
        {{if num
        < 10}} <h3>15</h3>
            {{else if num>=15}}
            <h3>12</h3>
            {{/if}};
            <!-- 遍历输出  -->
            {{each kinds}}
            <li>{{$index}} ---- {{$value}}</li>
            {{/each}}
    </script>
    <script>
        var obj = {
            name: 'banana',
            num: 15,
            color: true,
            info: "<h3>爱吃香蕉</h3>",
            kinds: ['海南香蕉',
                '广东香蕉',
                '老挝香蕉',
                '台湾香蕉'
            ]
        }
        var res = template('11', obj);
        $('body').append(res);
    </script>

6、模版引擎的过滤器(函数)

<script type="text/html" id='foo'>
        <div>{{time|dateFormat}}</div>
    </script>
    <script> template.defaults.imports.dateFormat = function(time) {
           var date = new Date(time);
           var year = date.getFullYear();
           var month = date.getMonth() + 1;
           var day = date.getDate();
           return year + '年' + month + '月' + day + '日';
        };
        var res = template('foo', {
            time: '2021-1-20'
        });
        $('body').append(res);
    </script>

7、正则表达式方法

1.复习
  • \d表示[0-9]任意数字

  • \D表示非数字

  • \s表示所有的空格

  • \S表示非空格

  • \w表示[a-zA-Z0-9_]任意一个字符

  • \W表示[a-zA-Z0-9_]之外的任意一个字符

  • /123(\w*)456/ 正则表示式中的小括号表示提取分组

2. reg.exec(str)

从字符串中依次去查找符合正则的字符内容, 返回一个数组 或 null

注意:exec方法每次只能找到符合正则条件的第一个字符内容

		 var reg2 = /c(\d+)d/;
        var res2 = reg2.exec('abc123def456');
        console.log(res2);
        console.log(res2[0], res2[1]); 							//c123d   123		
//返回数组的第一项表示匹配的完整字符,第二项表示分组中匹配的内容
3.str.replace(reg, val2)

从字符串中获取匹配正则的内容进行替换

		var str = 'abc123def456---c123d';
        str = str.replace(/c(\d+)d/g, function(item1, item2) {
         // g表示全局匹配		item1表示匹配的完整字符,item2表示分组中匹配的内容
         console.log(item1, item2);
         return item2 + 'hello';
        });
        console.log(str);
		//ab123helloef456---123hello

8、模板引擎的原理

个人理解:即先将{{username}}替换为username,然后利用回调函数,将对象中的username值返回给username,完成最终的替换

 		var str = '<div>{{username}}---{{age}}----</div>';
        var obj = {
            username: '小明',
            age: 12
        };
        str = str.replace(/{{\s*(\w+)\s*}}/g, function(item1, item2) {
            console.log(item1, item2);
            return obj[item2];
        });
        console.log(str);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: uni-app-template是一款基于uni-app框架建立的通用模板,可以为开发者提供一个基础的项目结构和功能模块,减少开发的时间和工作量。 该模板的优势在于跨平台性能良好,支持同时开发多个平台的应用程序,并且可以达到近乎原生的用户体验。 在使用uni-app-template时,开发者可以选择不同的开发方式,如HBuilder X、VS Code等,也可以选择不同的UI框架和组件库进行次开发。该模板还提供了常用的API,如ajax、storage、toast、loading等,方便开发者快速构建应用界面。 总之,uni-app-template是一款十分实用的通用模板,开发者可以通过基于此模板的项目,快速开发出高性能、跨平台的应用程序。 ### 回答2: uni-app-template是一个能够快速构建uni-app项目的通用模板。uni-app是一款跨平台开发框架,可以将一份代码同时转化为多个平台的应用程序,如微信小程序、App Store和Google Play应用商店,以及各种移动设备。 uni-app-template的特点主要体现在以下几个方面: 1.简易用 uni-app-template是一个基于uni-app的通用模板,具有简易用的特点,可以轻松构建平台适配性高、UI风格统一的app。 2.多平台适配 uni-app-template支持多种平台适配,不仅可以生成微信小程序应用,还可以生成iOS和Android应用,无需重新编写代码。因此,采用uni-app-template开发应用程序可以大大提高开发效率和代码复用率。 3.模块化开发 模板支持应用程序的模块化开发,可以将功能实现的代码封装在一个模块中,方便开发者进行管理和维护,并提高代码的可重用性和可维护性。 4.灵活配置 uni-app-template支持灵活配置,可以根据不同的需求选择不同的UI组件、主题颜色、字体、字号等参数,还可以根据具体平台的特点进行适配。 总之,uni-app-template是一个开发者在uni-app框架下快速构建多端应用程序的好选择。借助它,可以迅速构建高效、稳定、具备多端适配能力的app,大大提高开发效率和使用体验。 ### 回答3: Uni-app-template是一种用于uni-app框架的通用模板。uni-app是最近非常受欢迎的移动端应用开发框架,它可以一次编写,多端发布,不仅能够开发微信小程序,还可以开发iOS和安卓应用,还支持H5。 Uni-app-template能够提供一个通用的模板,以便开发者更加高效地完成开发工作。这个模板内置了一些常用的功能,例如页面布局,样式设置,组件引用等。开发者在使用这个模板时,可以根据自己的需要,逐步添加或修改代码,来实现自己的功能。 Uni-app-template中已经内置了很多通用的组件,例如tab栏、navbar、搜索栏等,这些组件可供开发者直接使用,以减少重复开发的工作量。 此外,Uni-app-template还内置了一些常用的插件,例如uni-ui(一个类似于Element UI的移动端UI组件库)、uview(一个为uni-app量身定制的UI库)等,这些插件可以帮助开发者更简地进行开发工作。 Uni-app-template的另一个优点是它的兼容性。一旦应用开发完成,它将能够直接在各个平台上运行,包括微信小程序、iOS和安卓应用,以及H5网页应用。由于Uni-app框架和Uni-app-template具有良好的兼容性,使得开发者的工作更加高效和简。 总之,Uni-app-template是一个非常实用和方便的开发工具,它能够帮助开发者更加快速、高效地完成应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱对恨错

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值