form表单阻止默认事件及获取值

阻止form的默认事件

方法1

采用行内js的onsubmit,那么实参必须使用保留的关键词event

复制代码
<form action="" id="aa" name="bb" onsubmit="cdma(event)">
  <input type="text" name="zhangsan" >
</form>

function cdma(event){
  event.preventDefault();
}

方法二

事件监听模式,那就e.preventDefault()即可

获取Form表单的方法

复制代码
<form action="" id="cc" name="dd">
  <input type="text" name="tx" id="txid">
  <input type="checkbox" id="ck" value="998" name="re" />
  <input type="checkbox" id="ck2" value="999" name="re" />
  <input type="file" name="fff">
  <button type="button">普通按钮</button>
  <button type="submit">提交</button>
</form>

document.forms获取,无论用id或name,效果一致

复制代码
document.forms['cc']
document.forms['dd']

方法1

获取表单中的某个值

复制代码
document.forms支持用name或id获取
document.forms['cc']['tx']
document.forms['cc']['txid']

方法二

遍历new FormData的实例可获取表单内对应的name属性和值

复制代码
document.forms['cc'].addEventListener('submit',function(e){ 
  e.preventDefault();
  new FormData(this).forEach(function(value,key){
    console.log('======value',value,key);
  })
})

方法三

formData实例内的get方法

注意:实参只能是name值,不能是id值

复制代码
document.forms['cc'].addEventListener('submit',function(e){ 
  e.preventDefault();
  var fd=new FormData(this)
  console.log('======fd',fd.get('tx'));
  console.log('======fd',fd.getAll('re'));
})

方法4

表单.elementsname或id

复制代码
document.forms['cc'].addEventListener('submit',function(e){
  e.preventDefault();
  console.log('======',document.forms['cc'].elements['tx'].value);
  console.log('======',this.elements['tx'].value);
  console.log('======',this.elements['txid'].value);
})

获取同一个name值的checkbox

复制代码
采用数组形式
document.forms['cc'].addEventListener('submit',function(e){ 
  e.preventDefault();
  console.log('======',this.elements['re'][0].checked);
})

获取文件

复制代码
document.forms['cc'].addEventListener('submit',function(e){ 
  e.preventDefault();
  console.log('======',this.elements['fff'].files[0]);
})
相关推荐
wdfk_prog15 分钟前
Wi-Fi Direct 教程 07:第一次 P2P Scan 如何真正发出——WPS/P2P IE、radio work 与 driver request
运维·服务器·ubuntu·wifi-direct
Wx-bishekaifayuan27 分钟前
springboot房屋租赁系统11574-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·sql·spring·课程设计
雪落漂泊43 分钟前
Linux基本指令(上)
linux·运维·服务器
三84444 分钟前
Fastjson 漏洞学习笔记 · 03 · 经典利用链:TemplatesImpl 与 JdbcRowSetImpl
java·web安全·fastjson
object not found1 小时前
WooCommerce 接入 KPay 后订单完成页不显示订单信息:returnUrl 动态参数问题解决
前端·wordpress·独立站支付
yume_sibai1 小时前
04-Nginx部署实战完全指南(前端部署 + 后端代理 + 监控告警 + 故障排查)
运维·前端·nginx
data analyse 4561 小时前
数据合规的同意记录怎么留存?
前端·人工智能·数据分析
ai小陈1 小时前
GPU服务器租用部署实战:用systemd守护模型推理服务
运维·服务器·人工智能·ai·php·gpu算力
开开心心_Every1 小时前
文件夹批量创建工具支持同级和多层级
运维·服务器·游戏·jupyter·智能手机·pdf·postman
KING-WU5121 小时前
Linux 工具之 yum、vim、gcc
linux·运维·服务器·后端