form表单特性总结
1. 表单控件的form属性
<form id="user_form" method="get"> </form> <div> 年龄: <input name="age" form="user_form"></> </div>
外部元素可以与非父级表单关联
表单提交,可以携带表单外部元素的值
2. 提交按钮的form相关属性
包括
formaction: 覆盖form的action,使用提交按钮的formaction提交地址
formtarget: 覆盖form的target,使用提交按钮的target设置
formenctype: 覆盖form的enctype
formmethod: 覆盖form的method
formnovalidate: 覆盖form的novalidate, 按钮提交的表单不进行原生的数据验证
例如:
<form action="a.html" target="_self"> 表单序号:<input name="formIndex" value="1" readonly> <input type="submit" value="提交" formaction="blank.html" formtarget="_blank"> </form>
不同按钮可以提交不同地址
<form action="add.php"> <input type="submit" value="新建"> <input type="submit" value="修改" formaction="edit.php"> </form>
3. requestSubmit表单事件
form.submit() 只触发form原生提交,不触发addEventListener绑定的submit事件,会跳过浏览器内置的表单验证
form.requestSubmit() 不触发form原生提交,会触发addEventListener绑定的submit事件,会触发浏览器内置表单验证
4. submit事件的submitter属性
form.addEventListener('submit', function(event) {
event.preventDefault();
event.submitter.classList.add('loading');
})
submitter属性可以快速找到表单提交的触发源,方便添加loading等样式
5. formdata事件
formdata事件可以修改表单数据,提交到后端的数据会改变
form.addEventListener('formdata', (event) => {
event.formData.append('name', 'xiaoming');
});
在构造 FormData 对象时候,会触发 formdata 事件
form.addEventListener('submit', (e) => { e.preventDefault(); // 构造 FormData 对象,触发 formdata 事件 const formData = new FormData(form); console.log(JSON.stringify([...formData])); }); form.addEventListener('formdata', (e) => { const { formData } = e; // 将输入值转成小写 formData.set('field1', formData.get('field1').toLowerCase()); formData.set('field2', formData.get('field2').toLowerCase()); // 追加 name 字段 formData.append('name', 'test'); });
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-05-29 gvim的基本配置(中文乱码,行号和主题)
2020-05-29 d3的绘制
2020-05-29 d3的比例尺和坐标轴
2018-05-29 apache代理服务器配置
2017-05-29 字符串匹配之Sunday算法