面试题准备(二十六):form 表单

本文详细介绍了如何在网页中使用form表单收集数据,包括action、method、enctype属性的运用,以及如何通过Ajax实现异步提交,防止默认跳转、获取数据和清空表单的方法。同时涵盖了前端开发中表单监听和关键词解析。
摘要由CSDN通过智能技术生成

概述

网页中的表单主要负责数据采集,通过 form 标签操作,目的是把采集到的信息交给服务器处理

<!-- 一个简单的 form 表单 -->
<form>
  <input type="text" name="email_or_mobile">
  <input type="password" name="password">
  <button type="submit">提交</button>
</form>

表单由三部分组成

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

form 表单

该标签用于采集数据,它的属性用来规定怎么把采集到的数据发送到服务器

属性描述
actionURL向何处提交表单数据
methodget、post以什么方式提交表单
enctypeapplication/x-www-form-urlencoded
multipart/form-data
如何对表单数据编码
target_blank _self _parent _top在何处打开 action

action

  • 后端提供一个供接收表单数据的 URL,填入 action 中
  • 未指定 action,则默认值为当前页面 URL
  • 提交表单后会立即跳转到 action URL

target

常用的是 _blank _self

  • _blank 在新窗口打开
  • _self 在当前窗口打开

method

  • 默认值为 get
  • get 适合提交少量的简单的数据
  • post 适合用来提交大量的复杂的数据,或者文件数据 — 常用

enctype

常用

  • application/x-www-form-urlencoded 默认值,表示在发送前编码所有字符
  • multipart/form-data 不对字符编码,适用于包含文件上传控件的表单

解决表单同步提交

如果使用表单提交数据

  1. 页面会发生跳转
  2. 跳转之前的页面状态会消失

解决方法

  • 表单仅用于采集数据
  • 数据提交工作交由 Ajax 完成

监听表单提交事件

在 jQuery 中有两种方式监听表单提交事件

$('#myform').submit(e => {
	console.log('表单提交')
})
$('#myform').on('submit', e => {
	console.log('表单提交')
})

阻止默认行为

需要阻止表单提交后的页面跳转,使用 event.preventDefault()

$('#myform').submit(e => {
	e.preventDefault()
	console.log('表单提交')
})
$('#myform').on('submit', e => {
	e.preventDefault()
	console.log('表单提交')
})

快速获取表单中数据

使用 jQuery 提供的 serialize() 函数,可以一次性获取表单中全部数据

$('#myform').serialize()

在这里插入图片描述

快速清空表单

使用原生的 form.reset 函数

const form = document.getElementsbyTagName('form')[0]
form.reset()

// 或者用 jQuery
$('#myform')[0].reset()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值