首页 > 其他分享 >【jquery Ajax 】form表单教学+评论案例

【jquery Ajax 】form表单教学+评论案例

时间:2022-11-05 23:04:07浏览次数:85  
标签:jquery function form 表单 Ajax 评论 提交 action 数据


    

✍️ 作者简介: 前端新手学习中。

目录

​​form表单的基本使用​​

​​        什么是表单​​

​​        表单的组成部分​​



​​标签的属性​​

​​                 action​​

​​                target​​

​​                 method​​

​​        表单的同步提交以及缺点​​

​​                什么是表单的同步提交​​

​​                表单提交的缺点​​

​​通过Ajax提交表单数据​​

​​        监听表单提交事件​​

​​        快速获取表单中的数据​​

​​                serialize()函数​​

​​案例——评论列表​​

​​        渲染UI结构​​

​​         获取评论数据​​

​​                文档​​

​​请求的根路径​​

​​评论列表​​

​​                代码 ​​

​​           将获取到的初始数据显示在页面上​​

​​                        代码​​

​​         发表评论​​

​​               文档​​

​​发表评论​​

​​                修改html表单​​

​​                代码​​


form表单的基本使用

        什么是表单

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

        表单的组成部分

三个基本组成部分

  • 表单标签
  • 表单域
  • 表单按钮

【jquery Ajax 】form表单教学+评论案例_javascript

​ 

         
标签的属性

<form>标签用来采集数据,<form>标签的属性则是用来规定如何把采集到的数据发送到服务器。

【jquery Ajax 】form表单教学+评论案例_开发语言_02


                 action

action属性用来规定当提交表单时,向何处发送表单数据。

action属性的值应该是后端提供的一个url地址,这个url地址专门负责接受表单提交过来的数据。

当<form>表单未指定action属性值的情况下,action的默认值为当前页面的URL地址。

当表单提交后,页面会跳转到action属性指向的地址。

                target

target属性用来规定在何处打开 action 的url

它的可选值有五个,默认情况下,target的值是_self,表示在相同的框架中打开action URL。

【jquery Ajax 】form表单教学+评论案例_ajax_03


                 method

method属性用来规定以何种方式把表单数据提交到action URL。

它的可选值有两个,分别是get和post。

默认的情况下,method的值为get,表示通过URL地址的形式,把表单数据提交到action URL

 注意:get方式适合用来提交少量的,简单的数据。

 post方式适合用来提交大量的,复杂的,或包含文件上传的数据。

 在实际开发中,<form>表单的post提交方式用的最多,很少用get,例如登录,注册,添加数据等表单操作,都需要使用post方式来提交表单。

        表单的同步提交以及缺点

                什么是表单的同步提交

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

                表单提交的缺点

  1. <form>表单同步提交后,整个页面会发生跳转,跳转到action URL所指向的地址,用户体验很差。
  2. <form>表单同步提交后,页面之前的状态和数据会丢失。

如何解决表单同步提交的缺点

表单只负责采集数据,Ajax负责将数据提交到服务器。

通过Ajax提交表单数据

        监听表单提交事件

<body>
<form action="/login" method="get" id="f1">
<input type="text" name="user_name">
<input type="password" name="password">
<button type="submit">提交</button>
</form>
<script>
$(function () {
$('#f1').submit(function (e) {
//阻止默认的跳转
e.preventDefault();
})
})
</script>
</body>

        快速获取表单中的数据

                serialize()函数

     为了简化表单中数据的获取操作,jquery提供了serialize()函数,可以一次性获取表单中所有的数据。

<form action="/login" method="get" id="f1">
<input type="text" name="user_name">
<input type="password" name="password">
<button type="submit">提交</button>
</form>
<script>

$('#f1').submit(function (e) {
//阻止默认的跳转
e.preventDefault();

console.log($(this).serialize());
})

【jquery Ajax 】form表单教学+评论案例_前端_04

 结果是一个键值对字符串,键名是name,键值是输入的值,不同的键值对之间用&连接

所以  在使用这个函数时,一定要给所有表单添加 name属性。

案例——评论列表

        渲染UI结构

<body style="padding: 15px;">

<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">发表评论</h3>
</div>
<div class="panel-body">
<div>评论人</div>
<input type="text" class="form-control">
<div>评论内容</div>
<textarea class="form-control"></textarea>
<button type="submit" class="btn-primary btn">发表评论</button>
</div>
</div>

<ul class="list-group" id="cmt-list">
<li class="list-group-item">
<span class="badge" style="background-color: #5bc0de;">评论时间 </span>
<span class="badge" style="background-color: #5bc0de;;">评论人</span>
Item 1
</li>

</ul>

</body>

 

【jquery Ajax 】form表单教学+评论案例_前端_05

         获取评论数据

                文档

请求的根路径

​http://www.liulongbin.top:3006​

评论列表

  • 接口URL: /api/cmtlist
  • 调用方式: GET
  • 参数格式:无
  • 响应格式:

数据名称

数据类型

说明

status

Number

200 成功;500 失败;

msg

String

对 status 字段的详细说明

data

Array

评论列表

+id

Number

评论Id

+username

String

评论人姓名

+content

String

评论内容

+time

String

评论时间

                代码 

function getCommenlist() {
$.ajax({
type: 'get',
url: 'http://www.liulongbin.top:3006/api/cmtlist',
success: function (res) {
if (res.statue !== 200)
return console.log('获取失败');
}

})
}
getCommenlist()

           将获取到的初始数据显示在页面上

                        代码

<script>
function getCommenlist() {
$.ajax({
type: 'get',
url: 'http://www.liulongbin.top:3006/api/cmtlist',
success: function (res) {
if (res.status !== 200)
return console.log('获取失败');
var rows = []
$.each(res.data, function (i, item) {
var str = ` <li class="list-group-item">
<span class="badge" style="background-color: #5bc0de;">评论时间:${item.time}</span>
<span class="badge" style="background-color: #5bc0de;;">评论名称:${item.username}</span>
${item.content}
</li>`
rows.push(str)
})
$('#cmt-list').empty().append(rows)
}

})
}

getCommenlist()
</script>

【jquery Ajax 】form表单教学+评论案例_表单_06

         发表评论

               文档

发表评论

  • 接口URL: /api/addcmt
  • 调用方式: POST
  • 参数格式:

参数名称

参数类型

是否必选

参数说明

username

String


评论人名称

content

String


评论内容

  • 响应格式:

数据名称

数据类型

说明

status

Number

201 发表评论成功;500 请填写完整的评论信息; 501 执行Sql失败;

msg

String

对 status 字段的详细说明

                修改html表单

<div class="panel-body">
<div>评论人</div>
<input type="text" class="form-control">
<div>评论内容</div>
<textarea class="form-control"></textarea>
<button type="submit" class="btn-primary btn">发表评论</button>
</div>
//外层div换成form表单
//发表评论我们需要获取评论人和评论内容所以我们可以给他添加一个 name属性
//name属性 要与文档接口 对应
<form class="panel-body" id="formAddCmt">
<div>评论人</div>
<input type="text" class="form-control" name="username">
<div>评论内容</div>
<textarea class="form-control"></textarea name="content">
<button type="submit" class="btn-primary btn">发表评论</button>
</form>

                代码

$('#formAddCmt').submit(function (e) {
e.preventDefault();
//decodeURIComponent 解码
var data = decodeURIComponent($(this).serialize())
console.log(data);
$.ajax({
type: 'post',
url: 'http://www.liulongbin.top:3006/api/addcmt',
data: data
,
success:
function (res) {
console.log(res);
if (res.status !== 201)
return alert('评论发布失败');
getCommenlist()
//转换成dom对象使用reset()方法重置内容
$('#formAddCmt')[0].reset();
}

})

})

标签:jquery,function,form,表单,Ajax,评论,提交,action,数据
From: https://blog.51cto.com/u_15830125/5826342

相关文章

  • Xamrin.Forms android端全局异常处理
     以下为MainActivity中代码usingSystem;usingAndroid.App;usingAndroid.Content.PM;usingAndroid.Runtime;usingAndroid.OS;usingXamrinScanner.Services;......
  • JQuery概述
    库(library)与框架(frame)概述对比使用JQury第二个一定要在有JQuery路径的script标签下面,这样JQuery才会生效现状过时了,但简单,值得学......
  • Format
    Format/**Copyright(c)1996,2013,Oracleand/oritsaffiliates.Allrightsreserved.*ORACLEPROPRIETARY/CONFIDENTIAL.Useissubjecttolicenseterms.......
  • jQuery
    1.简介jQuery是一个快速、简洁的JavaScript代码库(框架。jQuery设计的宗旨是“writeLess,DoMore”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提......
  • jQuery分页插件bs_pagination
    官网:https://labs.pontikis.net/bs_pagination/直接讲如何使用:前端插件的使用步骤:​1,引入开发包:​2,创建容器:<div>​3,当容器加载完成之后,......
  • 【问题】:is not supported wheel on this platform
    安装离线文件的时候,会遇到这个问题, 很奇怪。问题:isnotsupportedwheelonthisplatform 解决方案是,先运行python,然后执行 importplatform  platform.architec......
  • 首选线程池,而不是多线程; 创建线程的方法; 存储过程和for循环插入数据; String字符串一般
    首选线程池,而不是多线程首选线程池,而不是多线程/**corePoolSize:线程长期为维持线程数核心线程数,常用线程数maximumPoolSize:线程数的上限,最大线程数keepAliveTime:超过线......
  • jquery(三)选择器
    <!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"lang="en"><head><meta......
  • jquery(一)
    页面加载完后加载jquery<scripttype="text/javascript"src="jquery-1.7.2.js"></script><scripttype="text/javascript">/*$(document).ready(function(){......
  • FormData类型的event.target.files如何使用Postman进行接口测试
    <divclass="filelist"><inputtype="file"accept=".doc,.docx,.txt,.pdf"@change="getFile($event)"/><button@click="submitForm($event)">提交</......