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

表单.elements[name或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]);
})
相关推荐
杰克尼5 分钟前
3. 分巧克力
java·数据结构·算法
老前端的功夫6 分钟前
前端技术选型的理性之道:构建可量化的ROI评估模型
前端·javascript·人工智能·ubuntu·前端框架
听风吟丶6 分钟前
Java 高级多线程编程:从虚拟线程到结构化并发的实战演进
java·开发语言
o***59277 分钟前
Spring 过滤器:OncePerRequestFilter 应用详解
java·后端·spring
稚辉君.MCA_P8_Java12 分钟前
Gemini永久会员 三个线程(A、B、C)交替执行
java·后端·架构
Protein_zmm12 分钟前
Wireshark实验一:Web 浏览器与服务器的协议报文捕获与分析
服务器·测试工具·wireshark
lijiatu1008614 分钟前
C++ 类成员变量声明语法错误
java·开发语言·c++
狮子座的男孩17 分钟前
js函数高级:04、详解执行上下文与执行上下文栈(变量提升与函数提升、执行上下文、执行上下文栈)及相关面试题
前端·javascript·经验分享·变量提升与函数提升·执行上下文·执行上下文栈·相关面试题
cookies_s_s20 分钟前
项目--协程库(C++)前置知识篇
linux·服务器·c++
Monly2122 分钟前
Java八股文:Redis篇
java·开发语言·redis