无法提交?FormData()未定义?原因在这里!!

问题起因

用360安全浏览器在学校网站提交失败,打开控制台找了一下原因发现是这句出错了

var formdata=new FormData()
//错误: FormData未定义

解决过程

简单点说就是换个浏览器就行了。
复杂点说就是:
FormData的支持说明
里面有

对于某些浏览器,允许范围内的版本,因为有时要找出哪个早期版本的浏览器提供了功能是不切实际的。范围内的版本应该谨慎使用,并且只有在无法找到特性最初提供的版本号时才可以使用。允许以下范围内的版本值

FormData的浏览器支持版本

简单点说就是以上内核版本不一定都支持你用这个函数。

再看看360安全浏览器的版本
360安全浏览器内核版本查看
在这里插入图片描述

好家伙,果然内核版本的原因。

换上QQ浏览器后成功发送,下面是QQ浏览器的内核版本
在这里插入图片描述

这方面我不太熟悉,就是找了找问题的原因。如有错误,烦请指出。

在前端,验证 `FormData` 中的数据通常发生在用户提交表单之前。可以利用 JavaScript 的一些内置方法和自定义函数来实现这个过程。以下是几个常用的方法: 1. **使用 HTML5 表单验证**: 在 `<form>` 标签上设置 `onsubmit` 事件,并使用 `HTMLFormElement.checkValidity()` 方法检查整个表单是否有效。如果表单不通过验证,浏览器会阻止默认提交。 ```html <form id="myForm" onsubmit="return validateForm(event)"> <!-- form elements --> </form> ``` ```javascript function validateForm(e) { e.preventDefault(); const formData = new FormData(document.getElementById('myForm')); if (!formData.checkValidity()) { alert("请填写所有必填字段"); return false; } // 如果验证成功,继续提交 } ``` 2. **自定义验证函数**: 可以创建一个函数,遍历 `FormData` 对象并使用条件判断进行数据验证。例如,检查某个字段是否存在,是否为空,是否满足特定格式等。 ```javascript function customValidate(formData) { let isValid = true; formData.forEach((value, key) => { if (key === 'requiredField') { if (!value) { isValid = false; alert('请输入必填字段'); } } // 添加更多自定义验证规则 }); return isValid; } if (customValidate(formData)) { // 提交表单 } ``` 3. **使用第三方库**: 如果需要更复杂的验证功能,可以考虑使用如`Validator.js`、`Parsley.js`等验证库,它们提供了一套完整的验证API和组件。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AQ_No_Happy

你的满意是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值